Не удается неявно преобразовать тип 'string' в 'UIInput'
У меня проблема с преобразованием типа String в UI Input в Unity3D. Я хочу получить информацию из базы данных и поместить ее в текстовое поле (UI Input)
Это сообщение об ошибке. (1-я ошибка)
"Невозможно преобразовать группу методов
ToString' to non-delegate type
UIInput. Рассмотрите использование скобок для вызова метода "
password = GameObject.Find ("tb_password").GetComponent <UIInput> ().ToString;
2 ответа
Вы пытаетесь переопределить метку строковым значением, что приводит к несоответствию типов и на самом деле не соответствует вашим ожиданиям. Вы должны получить доступ UIInput
имущество value
или же defaultValue
если вы не хотите предоставлять значения по умолчанию для пользователя - в любом случае, согласно вашему коду, вы, вероятно, не хотите этого.
В любом случае, если вы используете последнюю версию NGUI, вы должны исправить свой код следующим образом:
UIInput username = GameObject.Find ("tb_username").GetComponent <UIInput> ();
UIInput password = GameObject.Find ("tb_password").GetComponent <UIInput> ();
if( username != null )
username.value = DB.getName(LoginSystem.userNameStatic);
if( password != null )
password.value = DB.getPassword ("password");
Это должно работать, если вы правильно находите объекты с указанными вами именами, иначе это ничего не даст.
Вы можете получить доступ к компоненту UILabel из виджета ввода NGUI вместо компонента UIInput в корне виджета ввода и установить текст в метке (UILabel.text = "my text"). Вы также можете создать функцию, которая обновляет текст метки и передает текст в качестве параметра для этой функции. Вызовите функцию, когда вы хотите обновить текст.