首页 > Unity3D引擎 > 基础系列 > Unity3D基础API之Vector3
2015
09-28

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()--移动到目标位置

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)

Unity3D基础API之Vector3 - 第1张  | u3d8技术分享
最后编辑:
作者:网虫虫
网虫虫
分享是一种快乐; 分享是一种美德; 分享是一种幸福!

留下一个回复

你的email不会被公开。