任何人都可以告诉我这段代码中的错误是什么?

时间:2015-12-07 07:18:56

标签: c# unity3d

2015-12-02 00:00:00
  

错误:" NullReferenceException:对象引用未设置为对象的实例"

1 个答案:

答案 0 :(得分:1)

您获得的错误可能会出现在代码的几行中。

  • 是否已定义emailAdress?
  • 是否定义了工具?
  • emailAddress是否有附加了文本组件的子项?

你可以通过很多方式实现这一点,但是你的特定代码假设你有一个GameObject的引用,其中一个Text Component附加了一个Text Component。

我假设此片段是MonoBehaviour的一部分,并且还添加到场景中。公共成员 emailAddress 需要在Inspector中进行链接,并且还需要在其中一个子项上附加文本组件(UI.Text)。

如果是这样,您可以使用以下代码来测试失败的位置。您需要定义 util 才能使其正常工作,因为我不知道它是什么类型或类。

using UnityEngine;
using System;
using UnityEngine.UI;

public class EmailDisplay : MonoBehaviour
{

    public GameObject emailAddress;

    void Start()
    {
        string savedEmail = PlayerPrefs.GetString("Player Email");

        if (util == null)
            throw new NullReferenceException("util is not defined");

        if (util.IsValidEmail(savedEmail))
        {
            if (emailAddress == null)
                throw new NullReferenceException("emailAddress is not defined");

            Text inputemail = emailAddress.GetComponentInChildren<Text>();

            if (inputemail == null)
                throw new NullReferenceException("Can't find Text Component");

            inputemail.text = savedEmail;
        }

    }
}