Unity編輯器擴(kuò)展之EditorWindow

Unity編輯器擴(kuò)展之EditorWindow

繼承這個(gè)類的編輯器腳本可以用來創(chuàng)建一個(gè)編輯器窗口,類似Inspector窗口
若要在這個(gè)類中添加一些控件,可以使用GUI和GUILayout控件,還可以使用編輯器專用控件EditorGUI/EditorGUILayout
腳本創(chuàng)建
在Assets/Editor文件夾下創(chuàng)建腳本,并繼承UnityEditor.EditorWindow
在OnGUI函數(shù)中寫控件代碼
窗口顯示的觸發(fā)
一般使用MenuItem屬性創(chuàng)建一個(gè)菜單選項(xiàng),點(diǎn)擊后調(diào)用此函數(shù)顯示窗口,如EditorWindow.GetWindow(typeof(MyWindow))
為窗口添加控件
上述提到的EditorGUILayout等類中包含類各種控件,比如IntField, IntPopup, IntSlider, Vector2Field, TextField等等
將創(chuàng)建這些控件的代碼放在OnGUI函數(shù)中,則每一次渲染窗口都會(huì)執(zhí)行一次
其他功能
Update():對(duì)于可見窗口,每秒調(diào)用100次
OnDestroy():關(guān)閉窗口時(shí)調(diào)用
OnFocus():窗口被選中時(shí)調(diào)用
OnLostFocus():窗口不再被選中時(shí)調(diào)用
例子

以下為示例,還可參考Unity官方文檔EditorWindow部分

using UnityEditor;
using UnityEngine;

public class MyExt : EditorWindow {
    private int param1 = -1;
    private float param2 = 0;
    private string name = "";
    private int id = 0;

    [MenuItem("MyExt/Edit", false, 1)]
    private static void Init()
    {
        MyExt editor = (MyExt)EditorWindow.GetWindow(typeof(MyExt));
        editor.Show();
    }

    void OnGUI()
    {
        GUILayout.Label("Section1", EditorStyles.boldLabel);
        param1 = EditorGUILayout.IntField("param1 int", param1);
        if (GUILayout.Button("Load"))
        {
            Debug.Log("Load");
        }

        GUILayout.Label("Section2", EditorStyles.boldLabel);
        param2 = EditorGUILayout.FloatField("param2 float", param2);
        name = EditorGUILayout.TextField("Name", name);
        id = EditorGUILayout.IntSlider("id 0~8", id, 0, 100);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Babybus-u3d技術(shù)交流-Unity3d UnityEditor編輯器定制和開發(fā)插件 如何讓編輯器運(yùn)行你的代...
    Babybus_Unity閱讀 5,663評(píng)論 1 6
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,068評(píng)論 25 709
  • 111. [動(dòng)畫系統(tǒng)]如何將其他類型的動(dòng)畫轉(zhuǎn)換成關(guān)鍵幀動(dòng)畫? 動(dòng)畫->點(diǎn)緩存->關(guān)鍵幀 112. [動(dòng)畫]Unit...
    胤醚貔貅閱讀 13,531評(píng)論 3 88
  • “是我想太多,你總這樣說?!薄蚁胝f,你說的對(duì)?。?下個(gè)月1號(hào)閨密結(jié)婚,想挑份禮物給她。 在網(wǎng)上發(fā)現(xiàn)一枚心形化妝...
    又開始想吃柚子了閱讀 227評(píng)論 0 0
  • 抄中國近代史作業(yè)的時(shí)候我打開音樂列表,恰巧放到《不將就》,第一次聽這首歌的時(shí)候,我正上高三。李榮浩低沉的嗓音再加上...
    小兔嘰的尾巴閱讀 377評(píng)論 0 2

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