Appearance
Vector2 二维向量
四个方向
- 上:
Vector2.up((0, 1)) - 下:
Vector2.down((0, -1)) - 左:
Vector2.left((-1, 0)) - 右:
Vector2.right((1, 0))
标量
- 单位向量:
Vector2.one((1, 1)) - 零向量:
Vector2.zero((0, 0))
向量运算
- 加法:
Vector2.Add(v1, v2)(返回 v1 和 v2 的和) - 减法:
Vector2.Subtract(v1, v2)(返回 v1 和 v2 的差) - 乘法:
Vector2.Multiply(v, scalar)(返回 v 与标量的乘积) - 除法:
Vector2.Divide(v, scalar)(返回 v 与标量的商) - 相等:
Vector2.Equals(v1, v2)(判断 v1 和 v2 是否相等)。相等判断是基于向量的坐标值是否完全相同,即长度和方向都相同。 - 点积:
Vector2.Dot(v1, v2)(返回 v1 和 v2 的点积)。点积可以用于判断两个向量的方向是否相同,或者判断一个向量在另一个向量上的投影长度。 - 叉积:
Vector2.Cross(v1, v2)(返回 v1 和 v2 的叉积)。叉积可以用于判断两个向量是否垂直,或者计算两个向量组成的三角形的面积。 - 长度:
Vector2.Magnitude(v)(返回 v 的长度) - 夹角:
Vector2.Angle(v1, v2)计算无符号夹角 - 距离:
Vector2.Distance(v1, v2) - 模长平方:
Vector2.SqrMagnitude(v)(返回 v 的模长平方) - 归一化:
Vector2.Normalize(v)(返回 v 的单位向量) - 最小向量:
Vector2.Min(v1, v2)- 返回 x 和 y 都较小的向量 - 最大向量:
Vector2.Max(v1, v2)- 返回 x 和 y 都较大的向量 - 插值:
Vector2.Lerp(v1, v2, t)- 线性插值,t 为插值参数(0 到 1 之间) - 有符号夹角:
Vector2.SignedAngle(v1, v2)- 计算 v1 到 v2 的有符号夹角(单位:度)。如果 v1 到 v2 的旋转方向是顺时针,则返回正值;如果是逆时针,则返回负值。 - 平滑插值:
Vector2.SmoothDamp(current, target, ref currentVelocity, smoothTime)- 平滑插值,current 为当前值,target 为目标值,currentVelocity 为当前速度引用,smoothTime 为平滑时间(单位:秒)。
构造函数
- Vector2(x, y):创建一个二维向量,x 为水平方向,y 为垂直方向。
csharp
Vector2 v = new Vector2(1, 2);读取向量的属性
- x:
v.x(返回向量的水平方向分量) - y:
v.y(返回向量的垂直方向分量) - 下标:
v[0](返回向量的水平方向分量),v[1](返回向量的垂直方向分量)
插值的使用
线性插值:
Vector2.Lerp(v1, v2, t)- 线性插值,t 为插值参数(0 到 1 之间)。- 示例:
Vector2.Lerp(v1, v2, 0.5f)表示将 v1 和 v2 之间的向量,以 50% 的比例进行插值。
- 示例:
有符号插值:
Vector2.SmoothDamp(current, target, ref currentVelocity, smoothTime)- 平滑插值,current 为当前值,target 为目标值,currentVelocity 为当前速度引用,smoothTime 为平滑时间(单位:秒)。- 示例:
Vector2.SmoothDamp(currentPosition, targetPosition, ref currentVelocity, 0.5f)表示将当前位置 currentPosition 平滑插值到目标位置 targetPosition,平滑时间为 0.5 秒。 - 注意:currentVelocity 是一个引用参数,用于存储当前速度。在每次调用 SmoothDamp 方法时,需要传递一个当前速度的引用,用于更新速度。
- 示例:
MoveTowards
- MoveTowards(current, target, maxDistanceDelta):将当前向量 current 向目标向量 target 移动,最大移动距离为 maxDistanceDelta。
- 示例:
Vector2.MoveTowards(currentPosition, targetPosition, 0.5f)表示将当前位置 currentPosition 向目标位置 targetPosition 移动,最大移动距离为 0.5 单位。
- 示例: