特殊的生命周期,窗口的操作

上边是可输入的内容,

选择面板上物体的名字:

 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 }

猜你喜欢

转载自www.cnblogs.com/satanj/p/9724466.html