События Unity UIToolkit TextField не работаютC#

Место общения программистов C#
Ответить
Anonymous
 События Unity UIToolkit TextField не работают

Сообщение Anonymous »

У меня есть следующий код, и по какой-то причине, когда я его запускаю, журналы не отображаются в консоли (я также подключил отладчик VS и могу подтвердить, что методы вообще не вызываются). Что я могу делать неправильно? Мне не хватает какой-то специальной настройки или чего-то для работы событий UIToolkit?

Код: Выделить всё

public class Foo : MonoBehaviour
{
void Start()
{
var uiDoc = gameObject.AddComponent();
uiDoc.panelSettings = Resources.Load
("PanelSettings");
uiDoc.visualTreeAsset = Resources.Load("VisualTree");

var textField = uiDoc.rootVisualElement.Q("TextField");
textField.SetValueWithoutNotify("");
textField.RegisterValueChangedCallback(OnValChanged);
textField.RegisterCallback(OnKeyDown);
}

private void OnValChanged(ChangeEvent evt)
{
Debug.Log("Hello value changed");
}

private void OnKeyDown(KeyDownEvent evt)
{
Debug.Log("Hello key down");
}
}
Дополнительная информация:
Я знаю, что GameObject находится в сцене и имеет компонент UIDocument. Я знаю, что ресурсы существуют, их можно найти и назначить UIDocument. Строка uiDoc.rootVisualElement.Q("TextField"); фактически возвращает правильный элемент TextField. Для свойства TextField Is Delay установлено значение false, поэтому я ожидаю, что метод OnValChanged будет вызываться каждый раз, когда я изменяю символ в TextField. Объект PanelSetting в моем проекте имеет таблицу стилей темы, назначенную объекту с именем UnityDefaultRuntimeTheme, а TextSettings, назначенную объекту TextSettings по умолчанию, созданному в моем проекте.
Также, если я сохраню текстовое поле в переменной класса и зарегистрирую textField.value в функции обновления. Журнал пуст, хотя в пользовательском интерфейсе GameView я вижу изменение TextField.
Возможно, стоит также упомянуть, что строка textField.SetValueWithoutNotify("") кажется, меняет значение при просмотре с подключенным отладчиком, но не меняет значение в GameView.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»