前言
继承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
支持回车换行。