IEnumerator CameraEvent() { TimeManager.SetPaused(true); Camera newCamera = curObjective.objectiveObj.GetComponent <Camera> (); bool movesCamera = newCamera == null; AudioListener oldListener = GameObject.FindObjectOfType <AudioListener> (); AudioListener newListener = null; if (movesCamera) { yield return(StartCoroutine(CameraController.instance.ShowTarget(curObjective.objectiveObj.transform))); } else { yield return(StartCoroutine(SceneFader.FadeToCameraAndWait(newCamera, curObjective.fadeInColor))); oldListener.enabled = false; newListener = newCamera.gameObject.AddComponent <AudioListener> (); } if (curObjective.animation != null) { curObjective.animation.SetTrigger("Play"); } yield return(new WaitForSecondsRealtime(curObjective.time)); TimeManager.SetPaused(false); if (curObjectiveId < objectives.Count - 1) { if (movesCamera) { CameraController.instance.Resume(); } else { oldListener.enabled = true; Destroy(newListener); yield return(StartCoroutine(SceneFader.FadeToCameraAndWait(CameraController.instance.GetComponent <Camera> (), curObjective.fadeOutColor))); } } CompleteObjective(); }
IEnumerator GameOverAnimationSequence() { TimeManager.SetPaused(true); gameOverAnim.GetComponent <AnimationTrigger> ().actions += SetUpGameOver; if (LevelProgressManager.instance != null) { LevelProgressManager.instance.HideAllUI(); } foreach (GameObject go in objectsToDisableOnAnimation) { go.SetActive(false); } if (gameOverCam != null) { yield return(StartCoroutine(SceneFader.FadeToCameraAndWait(gameOverCam, Color.black))); } gameOverAnim.SetTrigger("GameOver"); yield break; }