首页 > 解决方案 > 在 Start 方法结束并按下按钮后,带有“new”关键字的实例化类为 null。Unity3d

问题描述

我有一个 SaveController,它看起来像这样:

在此处输入图像描述

在 MainMenuLogic 类的 Start 方法中,我实例化了 SaveController 的一个实例:

在此处输入图像描述

游戏开始时,在调用 Start 方法之前调用了 MusicOn 方法,因此 soundController 为空...

在此处输入图像描述

public void MusicOn(bool on)
{
    saveController.MusicOn(on);
}

我显然不了解应用程序流程,所以想知道是否有人知道可能出了什么问题。我应该用哪种方法实例化 SaveController?

PS 我知道,GameObject.Find,bleurgh ......我正在重构,没有 wuckers。

标签: c#unity3d

解决方案


看起来 Awake 是我正在寻找的方法。

Awake在调用之前调用Start,因此在调用中进行saveController实例化Awake允许在调用之前进行实例化MusicOn

void Awake() 
{
    saveController = new SaveController();
}

来源:https ://unity3d.com/learn/tutorials/topics/scripting/awake-and-start


推荐阅读