float pos = Vector3.Dot(transform.forward, target.position - transform.position);
if (pos >= 0)
{
print("在玩家前方");
}
else
{
print("在玩家后方");
}
>0 表示敌人在前方
=0表示敌人在正前方
<0表示敌人在后方
计算敌人在前方的那个角度
//1、用单位向量算出点乘结果
float pos = Vector3.Dot(transform.forward, (target.position - transform.position).normalized);
//2、用反三角函数得出角度(0--180)
print("角度为:" + Mathf.Acos(pos) * Mathf.Rad2Deg);
//用Vector3计算两个向量的夹角
print("角度2为:" + Vector3.Angle(transform.forward, target.position - transform.position));
2.叉乘
判断向量C的y轴是 >0 =0 还是 <0