[Unity][Camera]判断物体是否在摄像机 范围内的几个方法

本文介绍了在Unity中判断物体是否在Game视图主摄像机范围内,包括打包后仍能正常使用的方案,以及如何判断物体是否在Game视图和Scene视图两个摄像机范围内。同时,提到了OnBecameVisible和OnBecameInvisible两个方法的使用,以及MeshRenderer.isVisible属性在判断中的应用。并提供了相关参考资料。

 

 

 

 


判断物体是否Game视图主摄像机 范围内

...
    private void Update()
    {
        Vector3 viewPos = Camera.main.WorldToViewportPoint(this.transform.position);//在摄像机范围外
        if (viewPos.x >= 0 && viewPos.x <= 1 && viewPos.y >= 0 && viewPos.y <= 1 && viewPos.z > 0)
        {
            print("物体在 摄像机范围内");
        }
        else
            print("物体在 摄像机范围外");
    }
...

打包后不能正常使用。

 


判断物体是否Game视图主摄像机 范围内

...
    private Rect screenRect = Rect.zero;
...
    private void Update()
    {
        if (screenRect.Contains(Camera.main.WorldToScreenPoint(this.transform.position)))
        {
            Debug.Log("在摄像机范围内");
        }
        else
        {
            Debug.Log("在摄像机范围外");
        }
    }
...

打包后可正常使用。


判断物体是否Game视图和Scene视图两个摄像机 范围内

OnBecameVisible和OnBecameInvisible

相关资料1

 


判断物体是否Game视图和Scene视图两个摄像机 范围内

判断MeshRenderer.isVisible

...
    private void Update()
    {
        if (this.GetComponent<MeshRenderer>().isVisible)
        {
            Debug.Log("111第一个cube在视野内");
        }
        else
            Debug.Log("222第一个cube不在视野内");
    }
...

 

 


 

相关资料:

1.[Unity][Camera]判断物体是否在摄像机的可视范围视野范围内

2.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值