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)
向量的知识点后期还会在更新,如有不对,请指教。