UnityEditor

using UnityEngine;
using UnityEditor;
public class MyEditor:EditorWindow
{
[MenuItem("GameObject/window")]
static void AddWindow()
{
//創(chuàng)建窗口
Rect wr = new Rect(0, 0, 500, 500);
MyEditor window = (MyEditor)EditorWindow.GetWindowWithRect(typeof(MyEditor), wr, true, "widow name");
window.Show();

** EditorWindow.GetWindowWithRect() 和 EditorWindow.GetWindow()都可以創(chuàng)建一個窗口。前者可以規(guī)定窗口的區(qū)域,后者可通過鼠標(biāo)動態(tài)的延伸窗口。參數(shù)1表示窗口的對象,參數(shù)2表示窗口的區(qū)域,參數(shù)3表示窗口類型true表示窗口不會被別的窗口覆蓋,參數(shù)4表示窗口的名稱。**

}
//輸入文字的內(nèi)容
private string text;
//選擇貼圖的對象
private Texture texture;
public void Awake()
{
//在資源中讀取一張貼圖
texture = Resources.Load("1")as Texture;
}
//繪制窗口時調(diào)用
void OnGUI()
{
//輸入框控件
text = EditorGUILayout.TextField("輸入文字:", text);
if (GUILayout.Button("打開通知", GUILayout.Width(200)))
{
//打開一個通知欄
this.ShowNotification(new GUIContent("This is a Notification"));
}
if (GUILayout.Button("關(guān)閉通知", GUILayout.Width(200)))
{
//關(guān)閉通知欄
this.RemoveNotification();
}
//文本框顯示鼠標(biāo)在窗口的位置
EditorGUILayout.LabelField("鼠標(biāo)在窗口的位置", Event.current.mousePosition.ToString());
//選擇貼圖
texture = EditorGUILayout.ObjectField("添加貼圖", texture, typeof(Texture), true)as Texture;
if (GUILayout.Button("關(guān)閉窗口", GUILayout.Width(200)))
{
//關(guān)閉窗口
this.Close();
}
}
//更新
void Update()
{
}
void OnFocus()
{
Debug.Log("當(dāng)窗口獲得焦點時調(diào)用一次");
}
void OnLostFocus()
{
Debug.Log("當(dāng)窗口丟失焦點時調(diào)用一次");
}
void OnHierarchyChange()
{
Debug.Log("當(dāng)Hierarchy視圖中的任何對象發(fā)生改變時調(diào)用一次");
}
void OnProjectChange()
{
Debug.Log("當(dāng)Project視圖中的資源發(fā)生改變時調(diào)用一次");
}
void OnInspectorUpdate()
{
//Debug.Log("窗口面板的更新");
//這里開啟窗口的重繪,不然窗口信息不會刷新
this.Repaint();
}
void OnSelectionChange()
{
//當(dāng)窗口出去開啟狀態(tài),并且在Hierarchy視圖中選擇某游戲?qū)ο髸r調(diào)用
foreach (Transform t in Selection.transforms)
{
//有可能是多選,這里開啟一個循環(huán)打印選中游戲?qū)ο蟮拿Q
Debug.Log("OnSelectionChange" + t.name);
}
}
void OnDestroy()
{
Debug.Log("當(dāng)窗口關(guān)閉時調(diào)用");
}
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Babybus-u3d技術(shù)交流-Unity3d UnityEditor編輯器定制和開發(fā)插件 如何讓編輯器運行你的代...
    Babybus_Unity閱讀 5,663評論 1 6
  • 最近看雨松mono的教程的教程,知道了c#的反射用法,就試著查探一下UnityEditor.dll內(nèi)部的方法和各種...
    karma085閱讀 1,476評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,535評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,917評論 25 709
  • 朋友總說我哪來的那么多人際關(guān)系值得你思考,你只需要知道“為什么他生你的氣?”“關(guān)于原則性問題嗎?”“他值得你挽...
    花開不白閱讀 397評論 0 0

友情鏈接更多精彩內(nèi)容