特殊的生命周期,窗口的操作
上边是可输入的内容,
选择面板上物体的名字:
1 齐培良老师 2018/09/29 16:29:17 2 using System.Collections; 3 using System.Collections.Generic; 4 using UnityEngine; 5 using UnityEditor; 6 public class WindowEditor : EditorWindow 7 { 8 bool isShow = true; 9 float z1; 10 float z2; 11 [MenuItem("Window/MyWindow")] 12 static void MyWindow() 13 { 14 15 Debug.Log("新窗口"); 16 Rect rect = new Rect(0, 0, 500, 500); 17 WindowEditor win = (WindowEditor)EditorWindow.GetWindowWithRect(typeof(WindowEditor), rect, true, "我的窗口");//bool是否有边框 18 } 19 private void OnGUI() 20 { 21 GUILayout.Label("下面是窗口操作内容"); 22 EditorGUILayout.BeginHorizontal(); 23 if (GUILayout.Button("打开窗口", GUILayout.Width(220))) 24 { 25 Debug.Log("打开窗口"); 26 } 27 if (GUILayout.Button("关闭窗口", GUILayout.Width(200))) 28 { 29 Debug.Log("关闭窗口"); 30 } 31 EditorGUILayout.EndHorizontal(); 32 isShow = EditorGUILayout.BeginToggleGroup("是否可输入", isShow); 33 z1 = EditorGUILayout.FloatField("值1", z1); 34 z2 = EditorGUILayout.FloatField("值2", z2); 35 36 EditorGUILayout.EndToggleGroup(); 37 } 38 39 //特殊的生命周期 40 private void OnFocus()//获得窗口的焦点,点击了选中的当前窗口 41 { 42 Debug.Log("点击了窗口"); 43 } 44 private void OnLostFocus() //离开焦点,点击了出窗口外的任何地方 45 { 46 Debug.Log("离开了窗口"); 47 } 48 private void OnHierarchyChange()//窗口打开状态时,层级面板(Hierarchy)上的东西(物体的失活激活和组件的改变)改变了就会触发这个方法 49 { 50 Debug.Log("改变了状态"); 51 } 52 private void OnSelectionChange()//对物体选择的改变(还是操作于层级面板) 53 { 54 Debug.Log("你选择了别的物体"+ Selection.activeGameObject.name); 55 56 } 57 private void OnDestroy() 58 { 59 Debug.Log("窗口关闭了"); 60 } 61 }