码迷,mamicode.com
首页 > 其他好文 > 详细

UI事件监听的击穿

时间:2016-09-17 23:37:55      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

什么是UI事件监听的击穿

  在游戏视图中,有两个UI界面叠在一起的时候,单击一个空白处,却触发了被覆盖在下层了UI界面中的单击事件,这就是单击击穿了上层界面。

  假设场景中放置了一个箱子,单击箱子会触发一个开箱事件,如果单击一个UI,恰好UI在视觉上将箱子覆盖了,那么它也许就会触发箱子的单击事件。

 

如何避免和解决UI事件监听的击穿

  第一种方法:用一层BoxCollider覆盖,进行遮挡。

    在界面底板上Attach一个BoxCollider。

  第二种方法:使用EventMask

    Unity的Camera可以设置CullingMask来决定渲染的层,对于NGUI的事件监听核心组件UI Camera来说,也有一个EventMask的设置。首先将下层物体和上层物体设为不同的层,然后在UI Camera中设定这个摄像机只接受特定层的时间即可。

 

事件监听遮挡的妙用

  如下需求:假设玩家打开了一个界面,然后玩家如果单击了这个界面以外的任何区域,都将导致整个界面关闭。

  可以在界面的下面放置一个覆盖全凭的大型BoxCollider底板,然后给这个BoxCollider物体写一个单击事件,就是关闭打开的这个界面。这样当玩家单击到界面以外的任何区域时,它都会响应关闭界面的事件。

 

UI事件监听的击穿

标签:

原文地址:http://www.cnblogs.com/-soy/p/5879840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!