无法将类型'string'隐式转换为'UIInput'

时间:2014-05-05 05:46:06

标签: c# unity3d ngui

我在Unity3D中将类型String转换为UI输入时遇到问题。我想从数据库中检索信息并将它们放在文本框(UI输入)

这是错误消息。 (第1次错误)

  

"无法转换方法组   ToString' to non-delegate type UIInput&#39 ;.考虑使用括号来调用方法"

password = GameObject.Find ("tb_password").GetComponent <UIInput> ().ToString;

2 个答案:

答案 0 :(得分:1)

您尝试使用字符串值覆盖标签,这会导致类型不匹配,实际上并非您所期望的那样。如果您不想为用户提供默认设置,则必须根据您可能不想要的代码访问UIInput媒体资源valuedefaultValue。< / p>

无论如何,如果您使用的是最新的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");

如果你正确地找到了你指定的这些名字的对象,这应该有效,否则它不会做任何事情。

答案 1 :(得分:0)

您可以访问NGUI的输入窗口小部件下的UILabel组件,而不是输入窗口小部件根目录下的UIInput组件,并在标签中设置文本(UILabel.text =&#34; my text&#34 )。您还可以创建一个更新标签文本的函数,并将文本作为此函数的参数传递。如果要更新文本,请调用该函数。