Unity3D 检测对象的可见性

检测对象的可见性

Unity中最为简单、直接的对象可见性测试则是判断对象何时相对于相机可见。针对包含渲染器组件的任意对象,两个伴随事件OnBecameVisible和OnBecameInvisible将自动被调用,包括MeshRenderer和SkinnedMeshRenderer.当然,空游戏对象并不会被调用,即使此类对象位于相机的视见范围内。从技术上讲,这一类对象并未包含任何可见成分,尽管其中的全部内容均实现了空间定位。此类事件的代码如下:
void OnBecameVisible (){
Debug. Log (“Became Visible”) ;
}
void OnBecameInvisible(){
Debug. Log (“Became Invisible”) ;
}

此处,需要注意OnBecameVisible和OnBecameInvisible事件。首先,这里所讨论的可见性仅表示对象位于相机视锥体内,可被其他较近的对象所遮挡,因而实际不一定可见。其次,事件应用于全部相机,而非某一特定相机。OnBecameVisible 事件调用一次后表明,之前的不可见对象进入了相机(至少一部相机)的视锥体。类似地,OnBecameInvisible事件调用一次后表明, 之前的可见对象当前离开全部相机的视锥体。最后,此类函数还涵盖了场景相机的可见性。这也说明,如果用户利用Scene 选项卡测试游戏,且对象在该选项卡中可见,则该对象即处于可见状态。简而言之,仅当用户行为依赖于场景中的全部可见性(或不可见)时,OnBecameVisible 和OnBecameInvisible方法将十分有用。其中,可见性仅对应于视锥体的呈现效果。换而言之,此类事件可用于对相关行为进行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值