用户注册inputfield后,应自动填写当前存储在用户首选项中的电子邮件地址。我的工作正常。
我的问题是将此变量输出到主页面的输入字段中。如果有人以前管理过,那么任何帮助都会很棒。每次我尝试获取inputfield的文本时,都会返回null ref。
GameObject inputFieldGo = GameObject.Find("email");
InputField inputFieldCo = inputFieldGo.GetComponent<InputField>();
inputFieldCo.text = "hello";
NullReferenceException:未将对象引用设置为对象的实例 firstRun.Start()(在Assets / Scripts / init / firstRun.cs:31)
答案 0 :(得分:2)
检查命名空间
您需要确保明确包含用于处理UI元素的相应Unity命名空间:
using Unity.UI;
确保您正在定位适当的元素
之后,您需要确保您的GameObject.Find()
方法正确定位您的InputField元素(即仔细检查以确保标识符正确)。
确保没有拼写错误(即&#34; email_text&#34;而不是&#34;电子邮件&#34;等),因为这会导致您的方法返回null
,因此无效尝试设置它的属性时引用异常。
使用调试器
如果您仍然遇到问题,请考虑记录每个步骤以确定返回null的位置,然后考虑可能出错的地方。没有正确实例化的东西?是否有命名错误?
答案 1 :(得分:0)
搞定了。做了以下内容。
GameObject email_go = GameObject.Find("email_input");
Debug.Log(email_go);
InputField email_in = email_go.GetComponent<InputField>();
Debug.Log(email_in);
Debug.Log(email_in.text);
email_in.text = PlayerPrefs.GetString("email");
Debug.Log(email_in.text);
感谢@RionWilliams