public void SetPhase(StagePhase phase) { this.Phase = phase; switch (Phase) { case StagePhase.MEMORY: break; case StagePhase.COUNTDOWN: view.startPanel.gameObject.SetActive(false); Camera.main.transform.parent.DOMove(Constant.PLAY_CAM_POS, 1f).SetEase(Ease.Linear); StartCoroutine(view.CountDown()); break; case StagePhase.PLAY: view.inGamePanel.gameObject.SetActive(true); Camera.main.gameObject.GetComponent <MouseLook> ().enabled = true; rifle.SetActive(true); CreateCharacter(); break; case StagePhase.SHOT: view.inGamePanel.gameObject.SetActive(false); rifle.SetActive(false); var citizens = GameObject.FindGameObjectsWithTag("Citizen"); foreach (var c in citizens) { c.GetComponent <UnityEngine.AI.NavMeshAgent> ().speed = 0; } break; case StagePhase.CLEAR: Debug.Log("CLEAR"); AudioManager.Instance.PlaySE("gameclear"); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; if (GameManager.Instance.CurrentLevel <= 2) { var clearTime = (float)Constant.TIME_LIMIT_ARRAY[GameManager.Instance.CurrentLevel - 1] - stageTimer.Value; GameManager.Instance.SetClearTime(GameManager.Instance.CurrentLevel - 1, clearTime); view.clearPanel.gameObject.SetActive(true); } else { GameManager.Instance.CalculateClearTime(); view.gameClearPanel.gameObject.SetActive(true); naichilab.RankingLoader.Instance.SendScoreAndShowRanking(GameManager.Instance.clearTime); } break; case StagePhase.GAMEOVER: AudioManager.Instance.PlaySEWithVolume("gameover", 0.5f); Debug.Log("GAMEOVER"); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; view.gameOverPanel.gameObject.SetActive(true); break; } }