Подсказка / сообщение об ошибке для InputField (Unity) - PullRequest
0 голосов
/ 17 октября 2018

В Android / Java вы можете использовать что-то вроде этого

myEditText.setError("This field cannot be blank");

, чтобы показать сообщение об ошибке / подсказку для введенного текста в EditText:

enter image description here

Есть ли что-нибудь похожее для InputField Unity в C # или вам нужно сделать свой собственный (например, с текстом, который автоматически исчезает через 5 секунд)?

Есть ли обычно используемый дизайн / макет для отображения подобного сообщения в играх Unity / Windows?

1 Ответ

0 голосов
/ 17 октября 2018

Нет, но вы можете сделать свой собственный!

Добавить новый объект GameObject в качестве дочернего объекта в объект GameObject, к которому прикреплен ваш InputField.Вы можете редактировать этот GameObject сколько хотите, но просто добавьте UnityEngine.UI.Text, и убедитесь, что новый GameObject не активен по умолчанию.

Теперь добавьте скрипт в GameObject сваш InputField и добавьте в него что-то вроде этого:

public void OnStoppedEditing(string text) {
  if (text == "") { 
    errorWindow.SetActive(true); 
    errorText.text = "This field cannot be blank"; 

  }

}
public void Start() {
   //adds a listener that runs OnStoppedEditing when you stop editing myField
   myField.onEndEdit.AddListener(delegate {OnStoppedEditing(myField); }); 

   myField = gameObject.getComponent<InputField>();
   errorText = errorWindow.getComponent<Text>();
}
public GameObject errorWindow;
Text errorText; 
InputField myField;

убедитесь, что вы добавили "using UnityEngine.UI;"в начало сценария

Сохраните сценарий и примените errorWindow к созданному вами дочернему GameObject!

Обратите внимание, что я не тестировал этот код (у меня нет доступа к компьютеру с единым целымпрямо сейчас) так что если есть какие-либо ошибки, просто спросите:)

...