Unity编辑器相关

前言

继承EditorWindow。

GUILayout类与EditorGUILayout类的应用区别:

//TODO

创建窗口的方法

1)GetWindow<T>()

已开则聚焦、未开则创建。无需再手动调用 Show()。GetWindow<T>() 提供多个重载。

2)CreateInstance<T>()

始终创建一个全新的实例,不会查找已有实例。只"创建实例",不会显示。你必须显式调用 Show()/ShowUtility()/ShowPopup() 才会出现。

仅创建实例,无标题、无显示形态参数;这些都要在实例上手动设置并 Show。

文本相关

GUILayout.TextField() 与 GUILayout.TextArea()

cs 复制代码
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));
    }
}
  • 关键点:TextFieldTextArea 都会返回当前字符串,必须把返回值赋回变量(如上例),否则输入不会保存。
  • TextField 为单行,TextArea 支持回车换行。