Vector3
静态方法
1.Vector3.Angle()--两个向量之间的夹角
public static float Angle(Vector3 from, Vector3 to)
- 单位:度;
- 范围0-180度(返回两个向量之间较小的角度);
- 通常用于物体的转向操作
2.Vector3 ClampMagnitude()--钳制求模
public static Vector3 ClampMagnitude(Vector3 vector, float maxLength)
- 返回一个向量的模,最大长度不超过maxLength;
3.Vector3 Cross()--叉积
public static Vector3 Cross(Vector3 lhs, Vector3 rhs);
- 返回垂直于a,b,两个向量所在平面的另一个向量;
- 模长|c|=|a||b|sin<a,b>
4.Vector3.Dot()--点积
public static float Dot(Vector3 lhs, Vector3 rhs);
- a·b=|a|·|b|cos<a,b>
5.Vector3.Distance()--两点距离
public static float Distance(Vector3 a, Vector3 b);
- 返回两点之间的一个长度值,相当于(a-b).magnitude
6.Vector3.Lerp() --差值
public static Vector3 Lerp(Vector3 a, Vector3 b, float t);
- 由向量a渐变到向量b.
- 使用:一般用于平滑处理,比如摄像机的缓慢移动、导弹的追踪等m_Transform.position = Vector3.Lerp(m_Transform.position, newPos, Time.deltaTime)
7.Vector3.LerpUnclamped() --钳制差值
public static Vector3 LerpUnclamped(Vector3 a, Vector3 b, float t)
- 改插值t在小于0或大于1时的返回值不会被限制
- 按公式(b-a)*t来计算其返回值.
8.Vector3.MoveTowards()--移动到目标位置
public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
- 这个函数的返回值是一个点,以maxdistancedelta为单位速度沿着当前的和目标之间的线接近目标点
- 移动不会超过目标。maxdistancedelta为负值时,可以用来从目标推开该向量
9.Vector3.Normalize()--向量单位化
public static Vector3 Normalize(Vector3 value);
- 单位化一个向量,会改变这个向量本身,如果这个向量小于1,那么就将其置为0
- 使用静态变量Vector3.Normalized可以避免改变这个向量本身
10.Vector3.Project()-投影于线
public static Vector3 Project(Vector3 vector, Vector3 onNormal)
- 求一个向量在另一个向量方向上的投影
11.Vector3.ProjectOnPlane()-投影于面
public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal)
- 求一个向量在一个平面上的投影
- planeNormal:指的是该平面的法向量
12.Vector3.Reflect()-反射向量
public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal)
- 以一个平面的法向量为法线,求inDirection的反射向量
- inNormal:指的是平面的法向量;inDirection:指的是入射光线
13.Vector3.Slerp()-球形差值
public static Vector3 Slerp(Vector3 a, Vector3 b, float t)
- 本文固定链接: http://www.u3d8.com/?p=2118
- 转载请注明: 网虫虫 在 u3d8.com 发表过