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);

 

posted @ 2013-07-23 15:18  Java的Script  阅读(436)  评论(0)    收藏  举报