Unity判断 视野中是否存在敌人

版权声明:转载 请说明 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;
    }

猜你喜欢

转载自blog.csdn.net/qq2512667/article/details/83281203