private void OnLevelWasLoaded(int level) { if (generateMaze) { mazeInstance = gameObject.GetComponentWithTag <Maze>("Maze"); gridInstance = mazeInstance.GetComponent <Grid>(); if (mazeInstance != null) { mazeInstance.Seed = seed + (int)stage; Task mazeGeneration = new Task(mazeInstance.Generate(), false); mazeGeneration.Finished += MazeGenerationFinished; mazeGeneration.Start(); } else { throw new InvalidOperationException("Maze instance undefined."); } generateMaze = false; } UIStateManager.ClearState(); }