Созданный класс с ключевым словом "new" становится нулевым после завершения метода Start и нажатия кнопки. Unity3d - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть SaveController, он выглядит так:

enter image description here

В методе Start класса MainMenuLogic я создаю экземпляр экземпляра SaveController:

enter image description here

Когда игра запускается, метод MusicOn вызывается до вызова метода Start, поэтому soundController имеет значение null ...

enter image description here

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

Я, очевидно, не понимал поток приложения, поэтому задавался вопросом, есть ли у кого-нибудь представление о том, что может пойти не так.Каким методом я должен создать экземпляр SaveController?

PS Я знаю, GameObject.Find, bleurgh ... Я занимаюсь рефакторингом, без дураков.

1 Ответ

0 голосов
/ 19 ноября 2018

Похоже, что Awake был метод, который я искал.

Awake вызывается до Start, поэтому выполнение saveController в Awake позволяет выполнить создание экземпляра до вызова MusicOn.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...