EditorGUILayout.TextField 不返回更新的输入文本



我有一个简单的窗口,我想在其中打印以控制台用户在按下按钮时在所述窗口的文本字段中写入的值。打印到控制台的文本始终是默认文本 (abcd(,即使我更改它也是如此。我检测到的另一件事是,当我更改文本字段中的文本并按返回按钮时,它会再次变回默认值。

为什么inputText值始终是默认值?如何使其正常工作?

using UnityEditor;
using UnityEngine;
using System.Collections;
public class PhraseAccept : EditorWindow
{
public string editorWindowText = "Write your text here: ";
string newProjectName = "abcd";
int projectNumber = 1;
void OnGUI()
{
string inputText = "";
inputText = EditorGUILayout.TextField(editorWindowText, newProjectName);
this.Repaint();
if (GUILayout.Button("OK"))
Debug.Log(inputText);
if (GUILayout.Button("Abort"))
Close();
}
[MenuItem("Tools/PhraseAccept2")]
public static void main()
{
EditorWindow window = GetWindow(typeof(PhraseAccept));
window.Show();
}
}

它应该是这样的:

newProjectName = EditorGUILayout.TextField(editorWindowText, newProjectName);

此外,每次调用OnGUI时,您都将inputText设置为等于null,这可能是多次。

最新更新