Unity判断物体是否在视野内

Posted DaLiangChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity判断物体是否在视野内相关的知识,希望对你有一定的参考价值。

 方法1:

	public bool isplay;
    void OnBecameVisible()  //当物体进入相机视野
    {
        isplay = true;       
    } 
    void OnBecameInvisible()  //当物体离开相机视野
    {
        isplay = false;           
    }

方法2:

  /// <summary>
    /// 判断位置是否在相机视野内
    /// </summary>
    /// <param name="worldPos"></param>
    /// <returns></returns>
    private bool isInView(Vector3 worldPos)
    {
        Transform camTransform = Camera.main.transform;
        Vector2 viewPos = Camera.main.WorldToViewportPoint(worldPos);
        Vector3 dir = (worldPos - camTransform.position).normalized;
        float dot = Vector3.Dot(camTransform.forward, dir);//判断物体是否在相机前面

        if (dot > 0 && viewPos.x >= 0 && viewPos.x <= 1 && viewPos.y >= 0 && viewPos.y <= 1) return true;
        else return false;
    }

以上是关于Unity判断物体是否在视野内的主要内容,如果未能解决你的问题,请参考以下文章