EditorGUILayout.TextField не возвращает обновленный inputText - PullRequest
0 голосов
/ 07 мая 2018

У меня есть простое окно, в котором я хочу напечатать в консоли значение, которое пользователь пишет в текстовом поле указанного окна при нажатии кнопки. Текст, выводимый на консоль, всегда является текстом по умолчанию (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();
    }
}

1 Ответ

0 голосов
/ 07 мая 2018

Должно быть так:

newProjectName = EditorGUILayout.TextField(editorWindowText, newProjectName);

Также вы устанавливаете inputText равным нулю каждый раз, когда вызывается OnGUI, что может быть несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...