Unity中使用的向量

来源:互联网 发布:快消品拜访客户软件 编辑:程序博客网 时间:2024/06/08 03:37

1.获取A点到B点的长度:

Vector3 a(0,0,0)

Vec tor3 b(3,5,6)

Vector3 vector =new Vector3(a.x - b.x, a.y - b.y, a.z - b.z); 减法

Vector3 vector =new Vector3(a.x + b.x, a.y +b.y, a.z -+b.z);

2获取a和b的加法

Mathf.Sqrt(vector.x* vector.x + vector.y * vector.y + vector.z * vector.z); 

3,

判断目标在自己的前后方位可以使用下面的方法:

Vector3.Dot(transform.forward, target.position)

返回值为正时,目标在自己的前方,反之在自己的后方

4点积得到的是一个数值

所以我们可以通过点积得到两个向量之间的夹角。<a,b>= arccos(a·b / (|a|·|b|))

点积:c=Vector3.Dot(a,b); 

a,b夹角:Mathf.Acos( Vector3.Dot(a.normalized,b.normalized))*Mathf.Rad2Deg

Mathf.Acos()即数学中的arccos()函数。Mathf.Rad2Deg表示将弧度转化为角度

5叉积

叉积表示为Vector3.Cross(Vector3,Vector3)

//叉积的返回值

Vector3 c = Vector3.Cross(a, b); 

Vector3 d = Vector3.Cross(b, a); 

//向量a,b的夹角,得到的值为弧度,我转为角度

 float angle = Mathf.Asin(Vector3.Distance(Vector3.zero, Vector3.Cross(a.normalized, b.normalized))) 

6 已知A点坐标和角度,A点沿着某个已知的角度(q)以速度spend匀速移动t秒,求到达的点的坐标

首先可以求出斜边的长度:dis = speed*t

Vector3 c = newVector3(dis*Mathf.Sin(q),dis*Mathf.Cos(q),0

向量的知识点后期还会在更新,如有不对,请指教。