private void ChangeScene(Structs.GameScene to) { currentScene = to; //Debug.Log("Change scene to: " + currentScene); switch (currentScene) { case Structs.GameScene.Initialization: SwitchToMenu(); break; case Structs.GameScene.Menu: managerInput.SetEvents(); managerUI.SetPanels(); break; case Structs.GameScene.LoadingGame: //InitMap(); //entityManager.Init(); //GameInitialize(); //InitPlayer(); //InitCamera(); //SetCameraOnPlayer(); //GameStart(); // If we are in 2 player modes, or 3 player mode, change settings if (currentGameMode == Structs.GameMode.Multi3players) { remainingPlayers = 3; } else { remainingPlayers = 2; } managerUI.SetPanels(); SwitchToIngame(); break; case Structs.GameScene.Ingame: //inputManager.SetEvents(); //uiManager.UpdateUI(); Unpause(); managerMap.Reset(); managerMap.SummonMap(); managerEntity.Reset(); managerEntity.SummonPlayers(); ResetCamera(); if (managerEntity.playersScript[0] != null) { managerEntity.playersScript[0].OnDie += EndGameConditionChecker; managerEntity.playersScript[0].OnCollision += managerEntity.SummonHole; managerUI.SetPlayerSprite(0, managerEntity.playersScript[0].sprite.sprite); } if (managerEntity.playersScript[1] != null) { managerEntity.playersScript[1].OnDie += EndGameConditionChecker; managerEntity.playersScript[1].OnCollision += managerEntity.SummonHole; managerUI.SetPlayerSprite(1, managerEntity.playersScript[1].sprite.sprite); } if (currentGameMode == Structs.GameMode.Multi3players) { if (managerEntity.playersScript[2] != null) { managerEntity.playersScript[2].OnDie += EndGameConditionChecker; managerEntity.playersScript[2].OnCollision += managerEntity.SummonHole; managerUI.SetPlayerSprite(2, managerEntity.playersScript[2].sprite.sprite); } } managerInput.SetEvents(); managerUI.SetPanels(); break; case Structs.GameScene.Score: managerEntity.playersScript[0].OnCollision = null; managerEntity.playersScript[0].OnDie = null; managerEntity.playersScript[1].OnCollision = null; managerEntity.playersScript[1].OnDie = null; if (currentGameMode == Structs.GameMode.Multi3players) { managerEntity.playersScript[2].OnCollision = null; managerEntity.playersScript[2].OnDie = null; } managerInput.SetEvents(); managerUI.SetPanels(); break; case Structs.GameScene.GameEnd: managerEntity.Reset(); managerMap.Reset(); managerInput.SetEvents(); managerUI.SetPanels(); SwitchToMenu(); break; case Structs.GameScene.Exit: Application.Quit(); break; } }