Unity3d学习之Vector
Vector3.magnitude是指一个向量的长度,向量的长度计算涉及到平方根运算,按照官方的说法, quite CPU-hungry,所以,如果只是比较两个向量的长度,可以简单的用Vector3.sqrMagnitude进行大小比较,会快很多,例如
if(v.sqrMagnitude>range*range){
//do sth...
}
当求一个平面的法线时,我们只要知道属于这个平面的两条向量:
Vector3 a; Vector3 b; Vector3 c; Vector3 side1 = b - a; Vector3 side2 = c - a;
然后,用叉乘得出这两个向量的法线向量:
Vector3 perp = Vector3.Cross(side1, side2);
有时,通过点积运算,可以让事情简单:比如,我们测量一辆车的速度,通常情况下是车轮的转速乘以轮子周长,但有时,产生侧滑时,这么算就不正确了,需要求车子的刚体速度和前方向的点积:
float fwdSpeed = Vector3.Dot(rigidbody.velocity, transform.forward);
浙公网安备 33010602011771号