前言
繼承EditorWindow。
GUILayout類與EditorGUILayout類的應用區別:
//TODO
創建窗口的方法
1)GetWindow<T>()?
????????已開則聚焦、未開則創建。無需再手動調用 Show()。GetWindow<T>() 提供多個重載。
2)CreateInstance<T>()
????????始終創建一個全新的實例,不會查找已有實例。只“創建實例”,不會顯示。你必須顯式調用 Show()/ShowUtility()/ShowPopup() 才會出現。
????????僅創建實例,無標題、無顯示形態參數;這些都要在實例上手動設置并 Show。
文本相關
GUILayout.TextField() 與?GUILayout.TextArea()
using UnityEngine;public class MyGuiInput : MonoBehaviour {private string singleLine = "默認文本";private string multiLine = "多行\n默認文本";void OnGUI() {GUILayout.Label("單行輸入:");singleLine = GUILayout.TextField(singleLine, GUILayout.Width(300));GUILayout.Space(10);GUILayout.Label("多行輸入:");multiLine = GUILayout.TextArea(multiLine, GUILayout.Height(100), GUILayout.Width(300));}
}
- 關鍵點:
TextField
?和?TextArea
?都會返回當前字符串,必須把返回值賦回變量(如上例),否則輸入不會保存。 TextField
?為單行,TextArea
?支持回車換行。