首先我们先看下什么是点乘和叉乘
点乘,也叫向量的内积、数量积。顾名思义,求下来的结果是一个数。向量a·向量b=|a||b|cos<a,b>
由于|a|和|b|都是正数,所以结果的正负是由于cos<a,b>这部分决定的
由上图可以看出当角度在0-π/2之间时cos<a,b>正值 在π/2-π之间是正值;
所以由此我们可以根据这个结果判断物体之间的相对位置
当像个向量的点乘结果为正的时候 物体在参照物前方,反之则为负
下面画图演示下:
从上图看出 两个向量分别是:(参考点.transform.forward)和(目标点:transform.position-参考点:transform.position)注意不要减反;
叉乘:
叉乘,也叫向量的外积、向量积。顾名思义,求下来的结果是一个向量,记这个向量为c。
|向量c|=|向量a×向量b|=|a||b|sin<a,b>
向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断(用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向)。
叉乘求得的结果是原两个向量的所在平面的垂直向量
所以:c的方向取决于ab之间的相对位置 b在a左边时 c朝上 反之则朝下;
由此我们可以得出c向量的y值为正时 目标在参考点的左边 否则则在右边;
笔者认为 也可以用叉乘的向量的x值判断前后 可以用z值判断上下;