一直想通過切換按鈕實現(xiàn)編輯器上某些部分顯示或者隱藏的功能。今天無意中實現(xiàn)了這個功能。原理很簡單,編輯器面板上看到的都是繪制上去的,那么只要在特定時候不繪制就實現(xiàn)了這功能。
using UnityEditor;
using UnityEngine;
public class TestEditorWindow : EditorWindow
{
[MenuItem ("EditorWindow/TestEditorWindow")]
static void Init ()
{
EditorWindow.GetWindow<TestEditorWindow> ();
}
string mNotification = "通知消息";
bool mNotificationShow = false;
void OnGUI ()
{
#region 檢測鼠標(biāo)事件
// wantsMouseMove = EditorGUILayout.Toggle ("Recive Movment : ", wantsMouseMove);
wantsMouseMove = EditorGUILayout.BeginToggleGroup ("鼠標(biāo)移動", wantsMouseMove);
if (wantsMouseMove) {
EditorGUILayout.Vector2Field (" 鼠標(biāo)位置", Event.current.mousePosition);
if (Event.current.type == EventType.MouseMove && wantsMouseMove) {
Repaint ();
}
}
EditorGUILayout.EndToggleGroup ();
#endregion
#region 顯示通知消息
mNotificationShow = EditorGUILayout.BeginToggleGroup ("通知消息", mNotificationShow);
if (mNotificationShow) {
mNotification = EditorGUILayout.TextField (mNotification);
if (GUILayout.Button ("顯示消息")) {
this.ShowNotification (new GUIContent (mNotification));
}
if (GUILayout.Button ("隱藏消息")) {
RemoveNotification ();
}
}
EditorGUILayout.EndToggleGroup ();
#endregion
}
}
效果如下:

