国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 擴展自定義編輯器窗口

這篇具有很好參考價值的文章主要介紹了Unity 擴展自定義編輯器窗口。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在Assets文件夾路徑下任意位置創(chuàng)建Editor文件夾,將擴展編輯器的代碼放在Editor文件夾下


生成編輯器窗口

代碼中首先引用命名空間

using UnityEditor;

然后將創(chuàng)建的類繼承自EditorWindow

public class MenuEditor : EditorWindow

然后通過擴展編輯器菜單功能調用創(chuàng)建窗口的方法

[MenuItem("MainMenu/ShowWindows")]
static void ShowWindow()
{
    GetWindow<MenuEditor>();
}

要注意方法中泛型參數(shù)需要傳入的是自己代碼的類,這個功能是根據(jù)后面OnGUI方法中的具體邏輯生成一個窗口,如果沒有OnGUI函數(shù)或者OnGUI函數(shù)是空,只會打開一個空白窗口。


OnGUI函數(shù)編輯窗口內容

全部的編輯窗口的內容全部都需要寫在OnGUI事件函數(shù)中,生成窗口時會根據(jù)OnGUI函數(shù)中的具體邏輯來生成窗口中的內容,以下全部內容均需要卸載OnGUI函數(shù)中

public void OnGUI(){ }

GUILayoutOption 窗體大小參數(shù)

編輯窗口內容的時候大部分都會遇到一個params GUILayoutOption[]?options的參數(shù),這個參數(shù)中需要傳入的GUILayoutOption類型,通常情況為

GUILayout.Width(100), GUILayout.Height(100)

也就是設置窗體的長度與高度,Width為長度,Height為高度?


EditorGUILayout類


BeginFoldoutHeaderGroup 創(chuàng)建折疊標簽頁

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?BeginFoldoutHeaderGroup(bool?foldout, string?content)

第一個參數(shù)為默認狀態(tài)下標簽頁是否折疊

第二個參數(shù)為標簽頁的名字

返回的參數(shù)是標簽頁的折疊狀態(tài)

注意點有兩個:

1.需要在標簽頁中顯示的內容需要用if語句判斷返回值,然后將標簽頁中的內容寫在if語句中。

2.想要結束標簽頁時需要調用EditorGUILayout.EndFoldoutHeaderGroup()方法

示例代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-859923.html

    bool showGroup;
    public void OnGUI()
    {
        showGroup = EditorGUILayout.BeginFoldoutHeaderGroup(showGroup,"ShowGroup");
        if (showGroup)
        {
            GUILayout.Label("YourShowGroupNow");
        }
        EditorGUILayout.EndFoldoutHeaderGroup();
    }

Foldout 創(chuàng)建折疊標簽頁(功能同上)

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?Foldout(bool?foldout, string?content,?GUIStyle?style?= EditorStyles.foldout);

第一個參數(shù)是初始狀態(tài)是否折疊,需要和返回值變量相同,不能是常量

第二個參數(shù)是標簽的文字內容

返回值為當前標簽頁是否為折疊狀態(tài),需要與第一個參數(shù)變量相同

注意點有兩點:

1.需要在標簽頁中顯示的內容需要用if語句判斷返回值,然后將標簽頁中的內容寫在if語句中。

2.與BeginFoldoutHeaderGroup功能的區(qū)別是不再需要使用End方法結束標簽頁,更為智能化。

示例代碼:

    bool showFoldout;
    public void OnGUI()
    {
        showFoldout = EditorGUILayout.Foldout(showFoldout, "展示折疊內容");
        if (showFoldout)
        {
            GUILayout.Label("折疊內容");
        }
    }

?


InspectorTitlebar展示屬性折疊標簽頁

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?InspectorTitlebar(bool?foldout,?Object?targetObj);

參數(shù)一為初始折疊狀態(tài),需要和返回值為變量相同,不能為常量

參數(shù)二為獲取場景中任意物體的任意屬性,并將屬性顯示在折疊框上

返回值為折疊頁的折疊狀態(tài),需要和參數(shù)一為相同變量

注意點有兩點:

1.需要在標簽頁中顯示的內容需要用if語句判斷返回值,然后將標簽頁中的內容寫在if語句中。

2.折疊頁雖然獲取了屬性,但是不會顯示屬性的任何內容,如需要在折疊頁中顯示任何內容,均需要自己在if語句判斷返回值并手動添加標簽

示例代碼:

bool showMenu = true;
public void OnGUI()
{
    Transform cube = GameObject.Find("Cube").transform;
    showMenu = EditorGUILayout.InspectorTitlebar(showMenu,cube);
    if (showMenu)
    {
        GUILayout.Label("展折疊內容");
    }
}

BeginScrollView 創(chuàng)建滾動視圖

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Vector2 BeginScrollView(Vector2 scrollPosition, params GUILayoutOption[] options);

第一個參數(shù)為傳入任意Vector2的值,傳入的值必須是函數(shù)返回的值

第二個參數(shù)為GUILayoutOption類型,根據(jù)參數(shù)傳入設置窗口大小

返回值必須要與參數(shù)一傳入的變量相同,否則無法實現(xiàn)滾動,代碼中不需要使用返回值

注意點有兩個:

1.方法的第一個參數(shù)和返回值必須是同一個全局變量,不能是常量,不能是局部變量

2.想要結束滾動視圖時需要調用EditorGUILayout.EndScrollView()方法

示例代碼:

    Vector2 scrollViewPos;
    public void OnGUI()
    {
        scrollViewPos = EditorGUILayout.BeginScrollView(scrollViewPos, GUILayout.Width(500),GUILayout.Height(100));
        GUILayout.Label("This is a ScrollView !\nThis is a ScrollView !\nThis is a ScrollView !\nThis is a ScrollView !");
        GUILayout.Label("This is a ScrollView !\nThis is a ScrollView !\nThis is a ScrollView !\nThis is a ScrollView !");
        EditorGUILayout.EndScrollView();
    }

BeginToggleGroup 創(chuàng)建可勾選激活區(qū)域

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?BeginToggleGroup(string?label, bool?toggle);

第一個參數(shù)為勾選框中的文字

第二個參數(shù)為勾選框的初始勾選狀態(tài)

返回值為當前勾選框是否被勾選

注意點有兩個:

1.通過勾選框判斷是否需要激活的內容需要用if語句判斷返回的bool值,然后將可激活內容寫在if語句中。

2.想結束區(qū)域時需要調用EditorGUILayout.EndFoldoutHeaderGroup()方法

示例代碼:

    bool showGroup;
    public void OnGUI()
    {
        showGroup = EditorGUILayout.BeginFoldoutHeaderGroup(showGroup, "ShowGroup");
        if (showGroup)
        {
            GUILayout.Label("YourShowGroupNow");
        }
        EditorGUILayout.EndFoldoutHeaderGroup();
    }

ColorField 編輯顏色標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Color ColorField(string label, Color value, params GUILayoutOption[] options);

第一個參數(shù)為標簽的名字

第二個參數(shù)為設置初始的顏色,需要和返回值的變量相同

第三個參數(shù)為設置標簽的長度高度數(shù)值,可以不傳入

返回值為設置好的顏色,需要與第二個參數(shù)的變量相同

注意點有一個:

1.顏色值設置完后不會保存,每次重新打開后顏色會重置,需要在打開顏色窗口前先獲取場景中對應位置的顏色給參數(shù)二變量賦予顏色初始值,才能擁有初始顏色

示例代碼:

    Color color;
    public void OnGUI()
    {
        color = EditorGUILayout.ColorField("設置顏色", color);
    }

FloatField 輸入Float類型標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static float FloatField(string label, float value, params GUILayoutOption[] options);

第一個參數(shù)標簽的名字

第二個參數(shù)輸入float的初始值,需要和返回值變量相同,不能是常量

第三個參數(shù)設置標簽的長度和高度,可以不傳入

返回值輸入的float類型數(shù)據(jù),需要和第二個參數(shù)變量相同

注意點有一個:

1.float值輸入完后不會儲存,需要打開窗口前先獲取場景中需要的float值

示例代碼:

    float mainfloat;
    public void OnGUI()
    {
        mainfloat = EditorGUILayout.FloatField("輸入浮點數(shù)", mainfloat);
    }

IntField 輸入Int類型標簽

public static int IntField(string?label, int?value, params GUILayoutOption[]?options);

第一個參數(shù)標簽的名字

第二個參數(shù)輸入int的初始值,需要和返回值變量相同,不能是常量

第三個參數(shù)設置標簽的長度和高度,可以不傳入

返回值輸入的int類型數(shù)據(jù),需要和第二個參數(shù)變量相同

注意點有一個:

1.int值輸入完后不會儲存,需要打開窗口前先獲取場景中需要的int值

示例代碼:

    int mainInt;
    public void OnGUI()
    {
        mainInt = EditorGUILayout.IntField("輸入整數(shù)", mainInt);
    }

TextField 輸入String類型標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static string TextField(string label, string text, params GUILayoutOption[] options);

第一個參數(shù)為標簽的名字

第二個參數(shù)為輸入框中初始的文字,需要和返回值變量相同,不能是常量

第三個參數(shù)為設置標簽的長度和高度,可以不傳入

返回值為輸入框中的文本內容,需要和第二個參數(shù)的變量相同

注意點有一個:

1.string值輸入完后不會儲存,需要打開窗口前先獲取場景中需要的string值

示例代碼:

    string mainString;
    public void OnGUI()
    {
        mainString = EditorGUILayout.TextField("輸入字符串", mainString);
    }

Popup 下拉框標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static int Popup(string label, int selectedIndex, string[] displayedOptions, params GUILayoutOption[] options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為默認選擇的選項,需要和返回值變量相同,不能是常數(shù)

第三個參數(shù)為字符串數(shù)組,數(shù)組中字符串的內容為下拉框中顯示的的內容

返回值為下拉框選擇的選項,需要和第二個參數(shù)變量相同

注意點有一個:

返回值的類型為int,選中第一個選項時返回值為0,選擇第二個選項時返回值為1,選擇第三個選項時返回值為2,以此類推

示例代碼:

    int mainInt;
    public void OnGUI()
    {
        mainInt = EditorGUILayout.Popup("下拉框選擇",mainInt,new string[] { "A","B","C","D" });
    }

EnumPopup 枚舉下拉框標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Enum?EnumPopup(string?label, Enum?selected, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的名字

第二個參數(shù)為設置枚舉的初始值,需要和返回值為相同變量,不能是常量

第三個參數(shù)為設置標簽的長度和高度,可以不傳

返回值為標簽設置的枚舉值,返回值需要強制轉換

注意點有兩個:

1.函數(shù)的返回值為通用枚舉的Enum類型,需要在函數(shù)前添加強制轉換符號,將返回值強制轉換為需要的枚舉值類型,然后保存到參數(shù)二變量的返回值中。

2.枚舉值設置完后不會儲存,需要打開窗口前先獲取場景中需要的枚舉值

示例代碼:

    enum TestEnum
    {
        A, B, C, D
    }
    TestEnum testEnum = TestEnum.A;
    public void OnGUI()
    {
        testEnum = (TestEnum)EditorGUILayout.EnumPopup("設置枚舉", testEnum);
    }

HelpBox提示框

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static void HelpBox(string message, MessageType type);

第一個參數(shù)為提示框中需要提示的內容

第二個參數(shù)為提示的類型,關系到提示框前面的圖標

示例代碼:

    public void OnGUI()
    {
        EditorGUILayout.HelpBox("None", MessageType.None);
        EditorGUILayout.HelpBox("Info", MessageType.Info);
        EditorGUILayout.HelpBox("Warning", MessageType.Warning);
        EditorGUILayout.HelpBox("Error", MessageType.Error);
    }

IntSlider 滑動條設置整數(shù)

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static int?IntSlider(string?label, int?value, int?leftValue, int?rightValue, params GUILayoutOption[]?options);

第一個參數(shù)為標簽展示的文字

第二個參數(shù)為滑動條的初始值,需要和返回值變量相同,不能是常量

第三個參數(shù)為滑動條的最小值

第四個參數(shù)為滑動條的最大值

返回值為滑動條設置的整數(shù)值,需要和參數(shù)二的變量相同

注意點有一個:

1.int值設置完后不會儲存,需要打開窗口前先獲取場景中需要的int值

示例代碼:

    int mainInt;
    public void OnGUI()
    {
        mainInt = EditorGUILayout.IntSlider("滑動條設置整數(shù)",mainInt,0,10);
    }

?


Slider滑動條設置浮點數(shù)

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static float?Slider(string?label, float?value, float?leftValue, float?rightValue, params GUILayoutOption[]?options);

第一個參數(shù)是標簽的文本內容

第二個參數(shù)是標簽的初始值,需要和返回值的變量相同,不能是常量

第三個參數(shù)為滑動條的最小值

第四個參數(shù)為滑動條的最大值

第五個參數(shù)為設置標簽的長度與高度,可以不傳入

注意點有一個:

1.ifloat值設置完后不會儲存,需要打開窗口前先獲取場景中需要的float值

示例代碼:

    float mainFloat;
    public void OnGUI()
    {
        mainFloat = EditorGUILayout.Slider("滑動條",mainFloat,0,100);
    }

LabelField顯示字段標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static void?LabelField(string?label, params GUILayoutOption[]?options);

public static void?LabelField(string?label, string?label2, params GUILayoutOption[]?options);

第一個參數(shù)為需要顯示的字段

第二個參數(shù)可傳入第二個需要顯示的字段

第三個參數(shù)可以設置標簽的長度與高度,可以不傳

示例代碼:

    public void OnGUI()
    {
        EditorGUILayout.LabelField("獲取當前時間");
        EditorGUILayout.LabelField("當前時間", DateTime.Now.ToString());
    }

LayerField設置圖層標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static int?LayerField(string?label, int?layer, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為默認選擇的圖層,需要和返回值變量相同,不能是常量

第三個參數(shù)為設置標簽的長度和高度,可以不傳

返回值為選擇的圖層,需要和第二個參數(shù)變量相同

示例代碼:

    int getLayer;
    public void OnGUI()
    {
        getLayer = EditorGUILayout.LayerField("選擇圖層", getLayer);
    }

LinkButton外置鏈接字段

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?LinkButton(string?label, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為標簽的長度和高度,可以不傳入

返回值為是否點擊該鏈接,點擊后僅點擊的一幀返回true,其余時間返回false

注意點有一個:

1.需要在if中判斷返回值并在邏輯中打開鏈接,返回值僅在點擊時執(zhí)行一次

示例代碼:

    bool openUrl;
    public void OnGUI()
    {
        openUrl = EditorGUILayout.LinkButton("打開百度鏈接");
        if (openUrl)
        {
            Application.OpenURL("www.baidu.com");
        }
    }

MaskField 復選框標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static int?MaskField(string?label, int?mask, string[]?displayedOptions, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為默認選擇的選項,必須和返回值的變量相同,不能為常量

第三個參數(shù)為需要復選的全部選項

第四個參數(shù)為設置標簽框的長度和高度,可以不傳入

返回值為復選框中選擇的選項,通過圖層公式計算獲得的值

注意點有一個:

1.返回值并不是選擇字符串的數(shù)組,而是一個int值,這個int值計算的方式和Unity中圖層的復選框計算方式相同,第一個選項的值為1,第二個選項值為2,第三個選項值為4,第四個選項值為8,同時選擇AB的值為1+2=3,同時選擇ABC的值為1+2+4=7,同時選擇ACD的值為1+4+8 = 15?

示例代碼:

    int mainMask;
    public void OnGUI()
    {
        mainMask = EditorGUILayout.MaskField("設置遮罩",mainMask,new string[] { "A","B","C","D" });
    }

MinMaxSlider 滑塊設置最大最小值

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static void?MinMaxSlider(string?label, ref float?minValue, ref float?maxValue, float?minLimit, float?maxLimit, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為標簽最小值的初始值,需要使用ref并被函數(shù)改變

第三個參數(shù)為標簽最大值的初始值,需要使用ref并被函數(shù)改變

第四個參數(shù)為標簽最小值的限制值

第五個參數(shù)為標簽最大值的限制值

第六個參數(shù)為設置標簽的長度和高度,可以不傳入

不是很好用,不推薦使用,這里僅作科普

示例代碼:

    float minValue, maxValue;
    public void OnGUI()
    {
        EditorGUILayout.LabelField("MinValue",minValue.ToString());
        EditorGUILayout.LabelField("MaxValue",maxValue.ToString());
        EditorGUILayout.MinMaxSlider("設置滑塊",ref minValue,ref maxValue,-100.0f,100.0f);
    }

ObjectField 獲取場景資源標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Object?ObjectField(string?label,?Object?obj, Type?objType, bool?allowSceneObjects, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為場景資源的值,資源的類型需要與第三個參數(shù)指定的類型相同

第三個參數(shù)為指定資源的類型,如果想要指定只能傳入Transform屬性,就可以在第三個參數(shù)中傳入typeof(Transform),如果只能傳入BoxCollider,那么就在第三個參數(shù)中傳入typeof(BoxCollider)

第四個參數(shù)為是否可以指定場景中的資源,如果設置為false則只能指定Asstes文件夾中的文件資源,設置為true則可以指定Scene中的場景資源

注意點有五個:

1.雖然方法中參數(shù)和返回值均為Object類型,不過使用中均不使用Object類型的變量

2.傳入的第二個參數(shù)的類型需要和第三個參數(shù)中指定的類型一致

3.返回值的類型需要和第三個參數(shù)中指定的類型一致

4.返回值賦值給變量前需要先進行強制轉換,強制轉換的類型需要和第三個參數(shù)的類型相同

5.方法不僅能獲取Scene場景中的資源,也可以獲取Assets中的文件資源

示例代碼:

    Transform mainTransform;
    public void OnGUI()
    {
        mainTransform = (Transform)EditorGUILayout.ObjectField("選擇場景資源", mainTransform, typeof(Transform), true);
    }

PasswordField密碼輸入框

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static string?PasswordField(string?label, string?password, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為初始出入的字符,需要和返回值變量相同,不能是常量

第三個參數(shù)為設置標簽的長度和高度,可以不傳入

返回值為密碼框輸入的內容,需要和第二個參數(shù)變量相同

示例代碼:

    string password;
    public void OnGUI()
    {
        password = EditorGUILayout.PasswordField("輸入密碼", password);
    }

SelectableLabel 可選中字段標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static void?SelectableLabel(string?text, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為標簽的長度和高度,可以不傳入

注意點有一個:

1.功能與LabelField相同,均為顯示字段,但是與LabelField的區(qū)別是SelectableLabel顯示的字段可以被選中,可以被復制,但是LabelField顯示的字段不行

示例代碼:

    public void OnGUI()
    {
        EditorGUILayout.LabelField("顯示標簽");
        EditorGUILayout.SelectableLabel("顯示標簽");
    }

Space 添加標簽間的間隔

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static void?Space(float?width);

第一個參數(shù)為間隔的長度,可以不傳入默認為10

示例代碼:

    public void OnGUI()
    {
        EditorGUILayout.LabelField("標簽一");
        EditorGUILayout.LabelField("標簽二");
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("標簽三");
        EditorGUILayout.Space(20);
        EditorGUILayout.LabelField("標簽四");
    }

TagField 設置Tag屬性標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static string TagField(string label, string tag, params GUILayoutOption[] options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為默認選擇的標簽,需要與返回值變量相同,不能是常量

返回值為選擇的標簽,需要與第二個參數(shù)相同

注意點有一個:

1.選擇的標簽不會保存,每次使用的時候需要先獲取目標物體的標簽并賦值

示例代碼:

    string selectTag;
    public void OnGUI()
    {
        selectTag = EditorGUILayout.TagField("選擇標簽", selectTag);
    }

TextArea可編輯文字區(qū)域

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static string?TextArea(string?text, params GUILayoutOption[]?options);

第一個參數(shù)為文本區(qū)域中顯示的內容,如果內容需要編輯則需要與返回值的變量相同,如果內容僅提供復制功能不需要編輯則使用常量參數(shù)或者不獲取返回值(僅復制推薦使用SelectableLabel)

第二個參數(shù)為設置標簽的長度和高度,可以不傳入

注意點有一個:

1.返回值與第一個參數(shù)相等時,編輯的文本將會僅當時保存,再次打開窗口時文本將重置,返回值與第一個參數(shù)不相等時,編輯的文本將永遠無法保存。

示例代碼:

    string showText = "這是一段文本內容\n你可以隨意編輯這段話\n同時也可以復制這段話\n或者其他地方的內容粘貼到這里";
    public void OnGUI()
    {
        showText = EditorGUILayout.TextArea(showText);
    }

Toggle勾選框(右側)

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?Toggle(string?label, bool?value, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為當前標簽是否為選中狀態(tài),需要和返回值變量相同,不能是常量

第三個參數(shù)為當前標簽的長度與高度,可以不傳入

注意點有一個:

1.勾選框的內容不會保存,每次使用之前需要先獲取場景中對應的bool值

示例代碼:

    bool isSelect;
    public void OnGUI()
    {
        isSelect = EditorGUILayout.Toggle("勾選框",isSelect);
    }

ToggleLeft 勾選框(左側)

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static bool?ToggleLeft(string?label, bool?value, params GUILayoutOption[]?options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為當前標簽是否為選中狀態(tài),需要和返回值變量相同,不能是常量

第三個參數(shù)為標簽的長度與高度,可以不傳入

注意點有兩個:

1.勾選框的內容不會保存,每次使用之前需要先獲取場景中對應的bool值

2.與Toggle的用法和功能完全相同,唯一的區(qū)別就是勾選框在左側

示例代碼:

    bool isSelect;
    public void OnGUI()
    {
        isSelect = EditorGUILayout.ToggleLeft("勾選框",isSelect);
    }

Vector2Field輸入Vector2數(shù)值標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Vector2 Vector2Field(string label, Vector2 value, params GUILayoutOption[] options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為Vector2的初始值,需要和返回值相同,不能是常量

第三個參數(shù)為標簽的長度和高度,可以不傳入

注意點有一個:

1.輸入Vector2的內容不會保存,每次使用之前需要先獲取場景中對應的Vector2的數(shù)值

示例代碼:

    Vector2 mainVector;
    public void OnGUI()
    {
        mainVector = EditorGUILayout.Vector2Field("輸入Vector2值", mainVector);
    }

Vector3Field輸入Vector3數(shù)值標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

public static Vector3 Vector3Field(string label, Vector3 value, params GUILayoutOption[] options);

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為Vector3的初始值,需要和返回值相同,不能是常量

第三個參數(shù)為標簽的長度和高度,可以不傳入

注意點有一個:

1.輸入Vector3的內容不會保存,每次使用之前需要先獲取場景中對應的Vector3的數(shù)值

示例代碼:

    Vector3 mainVector;
    public void OnGUI()
    {
        mainVector = EditorGUILayout.Vector3Field("輸入Vector3值", mainVector);
    }

Vector4Field輸入Vector4數(shù)值標簽

Unity 擴展自定義編輯器窗口,unity,編輯器,游戲引擎

第一個參數(shù)為標簽的文本內容

第二個參數(shù)為Vector4的初始值,需要和返回值相同,不能是常量

第三個參數(shù)為標簽的長度和高度,可以不傳入

注意點有一個:

1.輸入Vector4的內容不會保存,每次使用之前需要先獲取場景中對應的Vector4的數(shù)值

示例代碼:

    Vector4 mainVector;
    public void OnGUI()
    {
        mainVector = EditorGUILayout.Vector4Field("輸入Vector4值", mainVector);
    }

到了這里,關于Unity 擴展自定義編輯器窗口的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Unity編輯器擴展(外掛)

    Unity編輯器擴展(外掛)

    每日一句:未來的樣子藏在現(xiàn)在的努力里 目錄 什么是編譯器開發(fā) C#特性[System.Serializable] 特殊目錄 命名空間 /*檢視器屬性控制*/ ?? ?//添加變量懸浮提示文字 ??? //給數(shù)值設定范圍(最小0,最大150) //指定輸入框,擁有5行 //默認顯示5行,最多顯示10行內容,再多用滾動條控

    2024年01月24日
    瀏覽(25)
  • Unity 可視化節(jié)點編輯器(GraphView、編輯器擴展)

    Unity 可視化節(jié)點編輯器(GraphView、編輯器擴展)

    ??前幾天把導師的項目打包發(fā)布交了一稿,這半個星期除了再把項目縫縫補補外(說實話項目做到后邊實在有些無聊,都是些瑣碎的東西而且自己也學不到什么,純粹是 浪費 消磨時間)無聊逛Unity商店發(fā)現(xiàn)了個有意思的東西,說實話一開始我以為只是單純繪制的2D動畫:

    2024年02月12日
    瀏覽(43)
  • Unity編輯器擴展之GenericMenu菜單擴展

    Unity編輯器擴展之GenericMenu菜單擴展

    內容將會持續(xù)更新,有錯誤的地方歡迎指正,謝謝! ? Unity編輯器擴展之GenericMenu自定義菜單 ? ? ? TechX 堅持將創(chuàng)新的科技帶給世界! 擁有更好的學習體驗 —— 不斷努力,不斷進步,不斷探索 TechX —— 心探索、心進取! 助力快速掌握 GenericMenu 菜單擴展 為初學者節(jié)省寶貴的

    2024年02月01日
    瀏覽(38)
  • Unity 編輯器擴展之 Attribute

    Unity 編輯器擴展之 Attribute

    Unity內置屬性[Attribute]是一種類似修飾功能的標簽。可以對OnSceneGUI,InspectorGUI,MenuGUI,WindowGUI等實現(xiàn)各種各樣的GUI擴展。用戶只要添加上特性標簽,就能夠自由的使用這些擴展功能。下面列出一些常用的標簽: 隱藏屬性在Inspector面板上的顯示。在繼承了MonoBehaviour的類中,用

    2023年04月09日
    瀏覽(24)
  • 【Unity編輯器擴展】| 頂部菜單欄擴展 MenuItem
  • Unity編輯擴展:功能篇之Json數(shù)據(jù)編輯器

    Unity編輯擴展:功能篇之Json數(shù)據(jù)編輯器

    前言 編輯器擴展算是比較純粹的功能開發(fā),基本沒有什么理論知識,都是一些 Unity 相關接口的使用與數(shù)據(jù)類型的設計操作等。在本篇文章主要的文字描述基本都是在做代碼解釋,為了使內容接受度更高,我會盡量描述到代碼結構中的每個細節(jié)。如果有對此不太了解又很感興

    2024年02月06日
    瀏覽(25)
  • 盤點Unity幾款編輯器擴展工具

    盤點Unity幾款編輯器擴展工具

    unity 編輯器一個不容忽視的強大之處就是非常易于自定義擴展工具,來滿足各種各樣的美術、策劃及程序上的需求。今天為大家介紹Asset Store資源商店中幾款實用的編輯器擴展工具,幫助大家直接在Unity編輯器中完成3D建模與調整工作,免去與其它軟件進行數(shù)據(jù)轉換的過程,從

    2024年04月09日
    瀏覽(25)
  • 【Unity編輯器擴展】| Inspector監(jiān)視器面板擴展

    【Unity編輯器擴展】| Inspector監(jiān)視器面板擴展

    前言 前面我們介紹了Unity中編輯器擴展的一些基本概念及基礎知識,還有編輯器擴展中用到的相關特性Attribute介紹。 后面就來針對Uniity編輯器擴展中比較常用的模塊進行學習介紹。 本文就來詳細介紹一下Unity編輯器擴展中關于 Inspector面板 擴展功能學習。

    2024年02月08日
    瀏覽(20)
  • 【Unity UIToolkit】UIBuilder基礎教程-制作簡易的對話系統(tǒng)編輯器 3步教你玩轉Unity編輯器擴展工具

    【Unity UIToolkit】UIBuilder基礎教程-制作簡易的對話系統(tǒng)編輯器 3步教你玩轉Unity編輯器擴展工具

    隨著Unity開發(fā)的深入,基本的Unity編輯器界面并不能滿足大部分玩家高階開發(fā)的要求。為了提高開發(fā)的效率,有針對性的定制化擴展編輯器界面是提高開發(fā)效率的不錯選擇。 今天就給大家?guī)鞺nity官方提高的編輯器擴展工具UIToolkit(集成了UIBuilder和UI Debugger等插件)的使用教程。

    2024年02月04日
    瀏覽(76)
  • Unity編輯器擴展-第四集-獲取物體的方法

    Unity編輯器擴展-第四集-獲取物體的方法

    第三集鏈接:Unity編輯器擴展-第三集-添加按鈕到組件菜單并且重置組件_菌菌巧樂茲的博客-CSDN博客 ?一、本節(jié)目標+效果展示 1.改選中單個物體的名字 2.改選中所有物體的名字 ?3.選中了所有的物體,但只改第一層物體的名稱 ?4.來個有用的(選中的所有物體,按順序起名)

    2024年02月14日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包