版权声明:转载 请说明 https://blog.csdn.net/qq2512667/article/details/83281203
在视野中要满足 视距满足且 敌人和前方的夹角 要小于最大视野的一半。
敌人和玩家的夹角 可以用Vector3.Angle 求得,玩家向前的方向是已知的, 玩家到敌人的方向 也是已知的,因此很容易求得。
视距就是玩家与敌人的距离。
public bool isFieldOfView(float fieldOfViewDistance, float fieldOfViewAngle, Transform Targer)
{
float dis = Vector3.Distance(transform.position, Targer.position);//求得距离
float angle = Vector3.Angle(transform.forward, Targer.position-transform.position );//求得夹角
if (dis < fieldOfViewDistance && angle < fieldOfViewAngle * 0.5)
{
return true;
}
return false;
}