Unity 5.6 NullReferenceException после передачи InputField gameObject в EventSystem.SetSelectedGameObject()

По некоторым причинам настройки InputManager игнорируются, поэтому я реализовал скрипт для навигации по элементам пользовательского интерфейса. Есть идея:

Selectable current

void setCurrent(Selectable selectable) {
      current = selectable;
      EventSystem.current.SetSelectedGameObject(current.gameObject, null);
}

void Update(){
      if(current == null) {
          setCurrent(Selectable.allSelectables[0]);
      }

      if(Input.GetKeyDown(KeyCode.UpArrow) && current.navigation.selectOnUp != null) {
          setCurrent(current.navigation.selectOnUp);
      }
}

Работает когда current содержит кнопки или переключатели, но когда это InpuField, навигация прерывается и журнал выдает следующую ошибку каждый кадр.

NullReferenceException: Object reference not set to an instance of an object
UnityEngine.UI.InputField.ActivateInputFieldInternal () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:2213)
UnityEngine.UI.InputField.LateUpdate () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:725)

[Редактировать]

Я уверен current никогда не бывает нулевым Вопрос не о чем NullReferenceException но почему некоторые объекты, производные от Selectable, вызывают эту ошибку. Я надеюсь, что какой-то разработчик единства мог воспроизвести эту ошибку.

0 ответов

Другие вопросы по тегам