C#(Unity)-数据未到达脚本

时间:2018-10-30 21:59:56

标签: c# unity3d

仅提供一些背景知识:我正在尝试统一制作一个迷你问答游戏(非常简单,不涉及商业或其他任何内容)。我一直在遵循unity关于如何执行此操作的教程,但是我遇到了此错误,并且不确定如何调试它。从网上看我可以看出这是一个常见错误,但看不到自己在做什么。

我收到NullReferenceException:我的AnswerButton脚本中的HandleClick()函数中的对象引用未设置为对象错误的实例,并且我不确定answerData如何为空。我也有DataController,QuestionData和RoundData脚本。

image showing data filled in

这是我的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;
 }

1 个答案:

答案 0 :(得分:0)

问题可能出在您的GameController类中。 answerData变量从未设置(由于它是私有变量,因此只能在您的GameController类中设置,而不能设置),但是它已在ShowQuestion()中使用。

您可能必须在ShowQuestion()中添加一些代码或在GameController中添加一些其他方法,才能从DataController对象中检索答案并将其放入answerData中。现在,什么也没做,所以answerData为空,Unity返回错误。