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判断物体是否在视野内的主要内容,如果未能解决你的问题,请参考以下文章

小功能⭐️Unity 如何判断物体是否在摄像机视野内或外

小松教你手游开发unity实用技能计算目标物体是否在自己的扇形视野范围

计算不在相机视野范围内的模型的方法

如图,如何在Unity中判断一个物体自身的旋转是不是处于某个特定范围内?

unity 如何知道物体是否在椭圆范围内?

Unity关于父物体判断子物体下面为空的代码