Unity3D基础API之Vector3
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()--移动到⽬标位置
unity3d入门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)
插值的向量的长度是均匀线性变化的
插值的向量之间的⾓度是⼀样⼤的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。