拓展编辑器(十四)_常驻辅助UI
在Scene视图中,我们可以添加EditorGUI,这样可以方便地在视图中处理一些操作事件。这些UI可以无需选择游戏对象,常驻显示在Scene视图中。代码如下:
using UnityEngine; using UnityEditor; public class 常驻辅助UI { [InitializeOnLoadMethod] static void InitializeOnLoadMethod() { SceneView.onSceneGUIDelegate = delegate (SceneView sceneView) { Handles.BeginGUI(); GUI.Label(new Rect(0f, 0f, 50f, 15f), "标题"); GUI.Button(new Rect(0f, 20f, 50f, 50f), AssetDatabase.LoadAssetAtPath<Texture>("Assets/unity.png")); Handles.EndGUI(); }; } }
上述代码中全局监听了SceneView.onSceneGUIDelegate委托,这样可以使用GUI全局绘制元素。注意我们需要在Handles.BeginGUI()和Handles.EndGUI()中间绘制完成我们需要绘制的UI。Handles是在SceneView里画一些能响应用户操作的几何图案,并影响指定的变量数值。效果如下: