Не удается неявно преобразовать тип 'string' в 'UIInput'

У меня проблема с преобразованием типа String в UI Input в Unity3D. Я хочу получить информацию из базы данных и поместить ее в текстовое поле (UI Input)

Это сообщение об ошибке. (1-я ошибка)

"Невозможно преобразовать группу методов ToString' to non-delegate typeUIInput. Рассмотрите использование скобок для вызова метода "

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"). Вы также можете создать функцию, которая обновляет текст метки и передает текст в качестве параметра для этой функции. Вызовите функцию, когда вы хотите обновить текст.

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