Unity3d-Finite-State-Machine
Unity3d-Finite-State-Machine copied to clipboard
StartCoroutine with LoadSceneAsync in _Enter states loading instantly
For some reason, this code will load the level instantly on _Enter, instead of waiting until the MainMenu_Enter.
private AsyncOperation load = new AsyncOperation();
void Intro_Enter()
{
// Preload Level
StartCoroutine(PreLoadLevel());
}
void Intro_Update()
{
_introTimer += Time.deltaTime;
if (_introTimer > _introLength)
_fsm.ChangeState(States.MainMenu);
}
void MainMenu_Enter()
{
// Show preloaded level
load.allowSceneActivation = true;
}
IEnumerator PreLoadLevel()
{
load = SceneManager.LoadSceneAsync("scene", LoadSceneMode.Additive);
load.allowSceneActivation = false;
yield return null;
}
Moving the StartCoroutine out into the Start function will work as expected...