void EndGame(bool win) { saveHandler.OnSave(); // unlocks the cursor before leaving the scene, to be able to click buttons Cursor.lockState = CursorLockMode.None; Cursor.visible = true; // Remember that we need to load the appropriate end scene after a delay gameIsEnding = true; endGameFadeCanvasGroup.gameObject.SetActive(true); if (win) { m_SceneToLoad = winSceneName; m_TimeLoadEndGameScene = Time.time + endSceneLoadDelay + delayBeforeFadeToBlack; // play a sound on win var audioSource = gameObject.AddComponent <AudioSource>(); audioSource.clip = victorySound; audioSource.playOnAwake = false; audioSource.outputAudioMixerGroup = AudioUtility.GetAudioGroup(AudioUtility.AudioGroups.HUDVictory); audioSource.PlayScheduled(AudioSettings.dspTime + delayBeforeWinMessage); // create a game message var message = Instantiate(WinGameMessagePrefab).GetComponent <DisplayMessage>(); if (message) { message.delayBeforeShowing = delayBeforeWinMessage; message.GetComponent <Transform>().SetAsLastSibling(); } } else { m_SceneToLoad = loseSceneName; m_TimeLoadEndGameScene = Time.time + endSceneLoadDelay; } }