在Unity中向量是struct
定义的值类型
- Vector2:就是二维向量
- Vector2Int:就是使用整数表示点的二维向量
- Vector3:就是三维向量
- Vector3Int:就是使用整数表示点的三维向量
- Vector4:就是四维向量
向量的构造函数
- new Vector2(x,y);
- new Vector3(x,y,z);
- new Vector4(x,y,z,w);
向量静态变量
静态变量 | Vector2简码 | Vector3简码 |
up | (0,1) | (0,1,0) |
down | (0,-1) | (0,-1,0) |
right | (1,0) | (1,0,0) |
left | (-1,0) | (-1,0,0) |
forward | (0,0,1) | |
back | (0,0,-1) | |
one | (1,1) | (1,1,1) |
zero | (0,0) | (0,0,0) |
向量的变量
- x/y/z/w : 向量轴的值
- magnitude :向量的模长( x * x + y * y + z * z + w * w)
- normalized:向量归一化 向量方向不变,单位改为1
- sqrMagnitude向量的模长的平方
- this[int] :使用[0] [1] …表示 x,y,z,w
向量的公共方法
- Set 设置向量的值,不可单独设置某一个轴上的值
- ToString 将向量格式化为字符串
- Equals 比较两个向量是否相似
向量的静态方法
- Angle 返回两个向量的角度,相对偏小的绝对值
- ClampMagnitude 钳制方法 判断在不在0到最大值之间,如果不在小于0返回0,大于最大值,返回最大值
- Distance 返回a到b的距离 Vector3.Distance(a,b)与 相同(a-b).magnitude
- Dot 点积方法
- Cross 叉积
- Lerp 线性插值 t的范围为0-1
- LerpUnclamped 线性插值,t不舍限制
- Max 返回最大值
- Min 返回最小值
- Normalize 将向量归一化
- OrthoNormalize 使向量归一化并相互正交
- MoveTowards 使用
MoveTowards
current
成员将位于该位置的对象移向该target
位置。通过使用此函数计算出的位置每帧更新对象的位置,您可以将其平稳地移向目标。 - Project 投影 将向量投影到指定方向
- ProjectOnPlane 投影到地面(向量在平面上的位置)
- Reflect 反射,矢量
inNormal
定义了一个平面 。矢量inDirection
被视为进入平面的方向箭头。返回值是一个向量,其大小与 相同,inDirection
但其方向被反射。 - RotateTowards 以固定速度将A向量向B向量方向旋转
- Scale 将两个向量按位相乘
- SignedAngle 返回从a向量到b向量的角度,带符号位 逆时针为正值,顺时针为负值
- Slerp 球形插值 这与线性插值(又名“lerp”)之间的区别在于矢量被视为方向而不是空间中的点。返回向量的方向由角度进行插值,该参数被限制在 [0, 1] 范围内
- SlerpUnclamped 球型插值 t不限制
- SmoothDamp 平滑阻尼