SceneView 和 Hierarchy视图中鼠标点击都可以选择游戏对象,假如我不想让SceneView视图接收鼠标点击选择事件,只希望在Hierarchy视图选择怎么办呢?我记得是前几天有朋友问过我这个问题,今天你刚好有空我就研究了一下,代码是这样的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using UnityEngine; using UnityEditor; using System.Collections; public class MyEditor { [InitializeOnLoadMethod] static void Start () { SceneView.onSceneGUIDelegate = OnSceneGUI; } public static bool IsLimitSceneSelectGameObject = true; static void OnSceneGUI( SceneView sceneview ) { Event e = Event.current; int controlID = GUIUtility.GetControlID( FocusType.Passive); if(IsLimitSceneSelectGameObject && e.type == EventType.Layout) { HandleUtility.AddDefaultControl(controlID); } } } |
IsLimitSceneSelectGameObject = true的话就限制在SceneView里选择游戏对象
IsLimitSceneSelectGameObject = false的话就可以在SceneView里选择游戏对象
还有一个办法也可以锁定SceneView游戏对象不可选择,如下图所示,你可以在Layers里面添加一个新的层,然后点击一下旁边的小锁头。这样凡是在这个层中的所有游戏对象都不能在SceneView视图中选择到了。
Unity版本5.3.1
- 本文固定链接: https://www.xuanyusong.com/archives/3884
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
UGUI RectTransform 这个也能在场景中被点击 ,能忽略掉这个组件吗? 只有继承MaskableGraphic的才能被点击
太好了,解决了我的问题。感谢雨凇