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("当窗口关闭时调用");
}
}