码迷,mamicode.com
首页 > 编程语言 > 详细

Unity 弹出界面时屏蔽对3D场景的点击

时间:2014-10-17 11:40:02      阅读:480      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   for   sp   div   on   问题   log   

  注:这里的UI制作用的是NGUI插件

  如题,在游戏中经常会遇到这种情况,场景中点击相关物体或者按钮弹出对应的2D界面,这时候除了2D界面上的可点击按钮等,应该屏蔽掉对3D场景的点击或者拖动事件。

  在这里介绍两种方法:

  1、对弹出的2D界面添加一个足够大的碰撞器,以覆盖整个屏幕:

// 为道路信息面板添加碰撞器,以屏蔽弹出面板时鼠标对3D场景的点击事件
gameObject.AddComponent<BoxCollider>();
gameObject.GetComponent<BoxCollider>().size = new Vector3(2400, 2000, 0);

  不用代码添加而是在Unity中直接添加组件的方式可能会导致该碰撞器覆盖在NGUI界面上的按钮上导致按钮不能点击,同时也应该注意添加该碰撞器的代码位置,不然也可能导致该问题;

  NGUI中两个界面重叠时,响应的是碰撞器较大的那个界面;

  2、当场景中的点击和拖动事件是用FingerGestures插件实现的时候,可以使FingerGestures脚本失效:  

GameObject.Find("FingerGestures").transform.GetComponent<FingerGestures>().enabled = false;

  当2D界面关闭时,再使脚本生效:

GameObject.Find("FingerGestures").transform.GetComponent<FingerGestures>().enabled = true;

 

Unity 弹出界面时屏蔽对3D场景的点击

标签:style   blog   color   for   sp   div   on   问题   log   

原文地址:http://www.cnblogs.com/vitah/p/4030596.html

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