仅提供一些背景知识:我正在尝试统一制作一个迷你问答游戏(非常简单,不涉及商业或其他任何内容)。我一直在遵循unity关于如何执行此操作的教程,但是我遇到了此错误,并且不确定如何调试它。从网上看我可以看出这是一个常见错误,但看不到自己在做什么。
我收到NullReferenceException:我的AnswerButton脚本中的HandleClick()函数中的对象引用未设置为对象错误的实例,并且我不确定answerData如何为空。我也有DataController,QuestionData和RoundData脚本。
这是我的AnswerButton脚本:
Powershell
这是我的AnswerData脚本:
public class AnswerButton : MonoBehaviour {
private AnswerData answerData;
private GameController gameController;
// Use this for initialization
void Start () {
gameController = FindObjectOfType<GameController>();
}
public void Setup(AnswerData data)
{
answerData = data;
}
public void HandleClick()
{
gameController.AnswerButtonClicked(answerData.isCorrect);
}
}
GameController脚本:
[System.Serializable]
public class AnswerData {
public string answerText;
public bool isCorrect;
}
答案 0 :(得分:0)
问题可能出在您的GameController
类中。 answerData
变量从未设置(由于它是私有变量,因此只能在您的GameController类中设置,而不能设置),但是它已在ShowQuestion()
中使用。
您可能必须在ShowQuestion()
中添加一些代码或在GameController
中添加一些其他方法,才能从DataController
对象中检索答案并将其放入answerData
中。现在,什么也没做,所以answerData
为空,Unity返回错误。