
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
本文介绍如何使用Unity中的Vector3.Dot方法来判断敌人的位置是处于玩家前方还是后方,并通过反三角函数求得具体的角度值。此外还提到了利用Vector3.Angle方法直接获取两个方向之间的夹角。
2696

被折叠的 条评论
为什么被折叠?



