using UnityEngine;
using UnityEditor;
public class BuildWindow : EditorWindow {
string myString = "Hello World";
bool groupEnabled;
bool myBool = true;
float myFloat = 1.23f;
bool _IsOpen;
bool _IsOne;
bool _IsTwo;
int _newIdx = 0;
int _oldIdx = 0;
string[] ArrayString = new string[3] { "string01", "string02", "string03" };
Texture texture;
Transform trans;
// Add menu named "Build Window" to the Window menu
[MenuItem ("Tools/Build Window")]
static void Init () {
// Get existing open window or if none, make a new one:
BuildWindow window = (BuildWindow)EditorWindow.GetWindow (typeof (BuildWindow));
}
void OnGUI () {
// 單純顯示文字
GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
// 可輸入文字選項
myString = EditorGUILayout.TextField ("Text Field", myString);
// 是否勾 搭配控制內部選項
groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle ("Toggle", myBool);
myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup ();
// 是否勾 搭配直or橫排法 顯示內部選項
GUILayout.BeginVertical("box");
_IsOpen = GUILayout.Toggle(_IsOpen, "Is Open");
if(_IsOpen)
{
GUILayout.BeginHorizontal("box");
GUILayout.BeginVertical("box");
_IsOne = GUILayout.Toggle(_IsOne, "Is 1");
GUILayout.EndVertical();
GUILayout.BeginVertical("box");
_IsTwo = GUILayout.Toggle(_IsTwo, "Is 2");
GUILayout.EndVertical();
GUILayout.EndHorizontal();
}
GUILayout.EndVertical();
// 按鈕
GUILayout.Button("Button");
// 下拉式選單
_newIdx = EditorGUILayout.Popup(_oldIdx, ArrayString);
if(_newIdx != _oldIdx)
_oldIdx = _newIdx;
// 顯示文字 + 自訂變數轉文字顯示
EditorGUILayout.LabelField ("選擇第N索引值 : ", _oldIdx.ToString());
// 自訂添加項目
texture = EditorGUILayout.ObjectField("選擇 texture :",texture,typeof(Texture),true) as Texture;
trans = EditorGUILayout.ObjectField("選擇 Transform :",trans,typeof(Transform),true) as Transform;
// 訊息通知視窗
if(GUILayout.Button("顯示通知訊息",GUILayout.Width(300)))
this.ShowNotification(new GUIContent("ShowNotification"));
if(GUILayout.Button("關閉通知訊息",GUILayout.Width(300)))
this.RemoveNotification();
}
}
以上就是提供自訂視窗,常用的UI編輯程式碼,算是整理官方提供的文件範例
以下是範例的結果 :
歡迎光臨 ~ Eg 程式筆記的天堂
當你看完此篇文章,如果你覺得文章不錯
可以留下鼓勵的留言~
將是我的撰寫更多相關文章的動力
文章標籤
全站熱搜

我收穫良多啊!
讚 有所收穫