// Unload previous assets and objects and // Load assets and objects needed for next stage // note: should be called on separate thread private void BackgroundLoadStage() { waitingToBegin = true; // Save Game gameManager.SaveGame(); // Thread.Sleep(2000); poolManager.ClearPoolsForNextStage(); // Load all relevant assets enemyDirector.OnNewStage(gameManager.CurrentStageData); // Create relevant object pools poolManager.CreateStageSpecificPools(gameManager.CurrentStageData); waitingToBegin = false; }