[Unity][Camera]如何判断空物体是否在摄像机可视范围内

本文介绍了三种方法在Unity中判断空物体是否位于摄像机的可视范围:OnWillRenderObject()、MeshRenderer.isVisible和OnBecameVisible()。这些方法要求物体包含MeshRenderer、MeshFilter组件,Mesh通常是透明白色平面。不使用MeshCollider可保持物体看似无形。参考了两篇相关文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

有3种方法,OnWillRenderObject(),MeshRenderer.isVisible,OnBecameVisible()

都可以实现 如题所示的功能,前提是这个 空物体必须含有3个组件MeshRenderer、MeshFilter、MeshCollider(可有可无)。

 

MeshFilter的Mesh为Plane或者是其他大小的平面的模型

为了使得这个空物体看起来 像是空的,可以不挂载MeshCollider,并且其材质为透明的白色的材质。

...
//第1种方法
    public bool isRendering=false;
    private float lastTime =0;
    private float curtTime =0;
//第2种方法
    public MeshRenderer mesh;

    // Start is called before the first frame update
    void Start()
    {
        curtTime = Time.time;
        mesh = this.GetComponent<MeshRenderer>();
    }
...
    void Update()
    {
//第1种方法
        isRendering = (curtTime != lastTime )? true : false;
        print("isRendering:"+ isRendering);
        lastTime &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值