初面网初面网

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 为垂直方向。
Vector2 v = new Vector2(1, 2);

读取向量的属性

  • xv.x(返回向量的水平方向分量)
  • yv.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 单位。

更新于 2026/2/26