// Update is called once per frame void Update() { if (isRequestLevelChange) { isRequestLevelChange = false; CurrentLevelState = EnumLevelState.PREPARING; Player.GetComponent<PlayerScript>().CurrentControlMode = PlayerScript.EnumControlMode.AUTO; transitionTimer = Time.time; switch (CurrentLevel) { case EnumLevels.LEVEL1: LoadLevel1(); break; case EnumLevels.LEVEL2: LoadLevel2(); break; case EnumLevels.LEVEL3: LoadLevel3(); break; case EnumLevels.FINAL: //final level break; } } switch (CurrentLevelState) { case EnumLevelState.NORMAL: //do nothing. the level is ready if (TriggerBox_Level1_2.GetComponent<RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.LEVEL2; } else if (TriggerBox_Level2_3.GetComponent<RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.LEVEL3; } else if (TriggerBox_Level3_final.GetComponent<RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.FINAL; } break; case EnumLevelState.PREPARING: if (Time.time - transitionTimer > transitionTimerLimit) { Debug.Log("everything set. start level!"); SceneManager.ResetSceneState(); CurrentLevelState = EnumLevelState.NORMAL; Player.GetComponent<PlayerScript>().CurrentControlMode = PlayerScript.EnumControlMode.NORMAL; } //spawn enemies //move cameras //prepare player break; } }
// Update is called once per frame void Update() { if (isRequestLevelChange) { isRequestLevelChange = false; CurrentLevelState = EnumLevelState.PREPARING; Player.GetComponent <PlayerScript>().CurrentControlMode = PlayerScript.EnumControlMode.AUTO; transitionTimer = Time.time; switch (CurrentLevel) { case EnumLevels.LEVEL1: LoadLevel1(); break; case EnumLevels.LEVEL2: LoadLevel2(); break; case EnumLevels.LEVEL3: LoadLevel3(); break; case EnumLevels.FINAL: //final level break; } } switch (CurrentLevelState) { case EnumLevelState.NORMAL: //do nothing. the level is ready if (TriggerBox_Level1_2.GetComponent <RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.LEVEL2; } else if (TriggerBox_Level2_3.GetComponent <RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.LEVEL3; } else if (TriggerBox_Level3_final.GetComponent <RoomTrigger>().CheckPointReached) { isRequestLevelChange = true; CurrentLevel = EnumLevels.FINAL; } break; case EnumLevelState.PREPARING: if (Time.time - transitionTimer > transitionTimerLimit) { Debug.Log("everything set. start level!"); SceneManager.ResetSceneState(); CurrentLevelState = EnumLevelState.NORMAL; Player.GetComponent <PlayerScript>().CurrentControlMode = PlayerScript.EnumControlMode.NORMAL; } //spawn enemies //move cameras //prepare player break; } }