Unity 弹出界面时屏蔽对3D场景的点击
2014-10-17 11:17
666 查看
注:这里的UI制作用的是NGUI插件
如题,在游戏中经常会遇到这种情况,场景中点击相关物体或者按钮弹出对应的2D界面,这时候除了2D界面上的可点击按钮等,应该屏蔽掉对3D场景的点击或者拖动事件。
在这里介绍两种方法:
1、对弹出的2D界面添加一个足够大的碰撞器,以覆盖整个屏幕:
不用代码添加而是在Unity中直接添加组件的方式可能会导致该碰撞器覆盖在NGUI界面上的按钮上导致按钮不能点击,同时也应该注意添加该碰撞器的代码位置,不然也可能导致该问题;
NGUI中两个界面重叠时,响应的是碰撞器较大的那个界面;
2、当场景中的点击和拖动事件是用FingerGestures插件实现的时候,可以使FingerGestures脚本失效:
当2D界面关闭时,再使脚本生效:
如题,在游戏中经常会遇到这种情况,场景中点击相关物体或者按钮弹出对应的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 5.6版本使用(3)】点击物体弹出窗口显示状态
- UE4蓝图案例:制作点击场景中的物体弹出UMG界面
- unity 点击UI时不触发场景物体的响应
- jsp中点击图片弹出文件上传界面及实现预览实例详解
- Add touch listener to 3D object in unity(Unity中给3D物体添加按钮点击功能)
- unity 3D学习日记:创建一个小场景并编写简单C#移动脚本
- 【代码笔记】点击顶点处,弹出另一个小的界面
- Android中导入Unity项目,界面点击事件失去焦点问题
- android 锁屏界面--屏蔽音量键,达到安全音量时不点击确定后,音量键无效
- Unity 3D——虚拟场景中的飞行摄像头
- 虚幻UE4 添加窗口小部件3D---无需点击运行(Play)即可改变场景中游戏物体的形状
- [QGLViewer]3D场景鼠标点击位置
- Unity18--鼠标和场景相反运动、物体绕过障碍物,向目标自动移动,且鼠标点击哪里,物体也运动
- < Unity 3D专栏 >批量操作,界面元素的显示状态
- 如何检测你的机器是否支持Ubuntu的 3D Unity 界面
- Android中导入Unity项目,界面点击事件失去焦点问题
- JavaScript调用App原生代码(iOS、Android)通用解决方案 实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功
- Unity 3D视频播放器场景C#脚本
- jsp中点击图片弹出文件上传界面及预览功能的实现
- 【Unity 3D学习】键盘控制人物在场景中移动