2021-06-30Unity检测物体是否在摄像机的视角范围内

Unity检测物体是否在摄像机的视角范围内的两种方法

1.第一种方法,通过调用API

void OnBecameVisible()
    {
        text.text = "物体在摄像机的可视范围内";
    }
    void OnBecameInvisible()
    {
        text.text = "物体不在摄像机的可视范围内";
    }
这种方法在unity程序中是根据Scene视图来进行判断的,但是打包到安卓或者pc端不回出现这种情况。

2.第二种方法


     GameObject cube;
     Collider objCollider;
     Camera cam;
    Plane[] planes;
        
    void Start()
    {
        cam = Camera.main;
        planes = GeometryUtility.CalculateFrustumPlanes(cam);
        objCollider = GetComponent<Collider>();
    }

   
    void Update()
    {
        if (GeometryUtility.TestPlanesAABB(planes,objCollider.bounds))
        {
            Debug.Log(cube.name+"检测到了");
        }
        else
        {
            Debug.Log(cube.name + "没检测到");
        }
        
    }
将脚本挂在需要检测的物体上。

注意使用这两种方法要确保要检测的物体身上挂载的有MeshRenderer组件!!!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值