U3D编辑器学习

xiaoxiao2021-02-28  13

Editor下:

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor (typeof(EditorTest))] [ExecuteInEditMode] public class MyEditor : Editor { public override void OnInspectorGUI() { EditorTest editorTest = (EditorTest)target; editorTest.mRectValue = EditorGUILayout.RectField("windows positions", editorTest.mRectValue); editorTest.texture = EditorGUILayout.ObjectField("add textures", editorTest.texture, typeof(Texture), true) as Texture; } } Scripts using System.Collections; using System.Collections.Generic; using UnityEngine; public class EditorTest : MonoBehaviour { public Rect mRectValue; public Texture texture; } using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class EditorWindowTest : EditorWindow { [MenuItem("MyMenu/OpenWIndow")] static void OpenWindow() { Rect wr = new Rect(0, 0, 600, 600); EditorWindowTest window = (EditorWindowTest)EditorWindow.GetWindowWithRect(typeof(EditorWindowTest), wr, true, "测试创建窗口"); window.Show(); } private string text; private Texture texture; public void Awake() { texture = Resources.Load("1") as Texture; } private void OnGUI() { text = EditorGUILayout.TextField("输入文字:", text); if(GUILayout.Button("打开通知",GUILayout.Width(200 ) )) { this.ShowNotification(new GUIContent(text)); } if (GUILayout.Button("关闭通知", GUILayout.Width(200))) { this.RemoveNotification(); } //文本框显示鼠标在窗口位置 EditorGUILayout.LabelField("鼠标在窗口位置", Event.current.mousePosition.ToString()); //选择贴图 texture = EditorGUILayout.ObjectField("添加贴图", texture, typeof(Texture), true) as Texture; if (GUILayout.Button("关闭按钮", GUILayout.Width(200))) { this.Close(); } } private void Update() { } private void OnFocus() { Debug.Log("当窗口获得焦点时再调用一次"); } private void OnLostFocus() { Debug.Log("当窗口失去焦点时调用一次"); } private void OnHierarchyChange() { Debug.Log("当Hierarchy视图中的任何对象发生改变时调用一次"); } private void OnProjectChange() { Debug.Log("当Project视图中的资源发生改变时调用一次"); } private void OnInspectorUpdate() { Debug.Log("窗口面板的更新"); this.Repaint(); } private void OnSelectionChange() { foreach(Transform t in Selection.transforms) { Debug.Log("OnSelectionChange" + t.name); } } private void OnDestroy() { Debug.Log("当窗口关闭时调用"); } }
转载请注明原文地址: https://www.6miu.com/read-2650082.html

最新回复(0)