protected virtual void Start() { OnObjectiveCreated?.Invoke(this); DisplayMessageEvent displayMessage = Events.DisplayMessageEvent; displayMessage.Message = Title; displayMessage.DelayBeforeDisplay = 0.0f; EventManager.Broadcast(displayMessage); }
void EndGame(bool win) { // 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(); //} DisplayMessageEvent displayMessage = Events.DisplayMessageEvent; displayMessage.Message = WinGameMessage; displayMessage.DelayBeforeDisplay = DelayBeforeWinMessage; EventManager.Broadcast(displayMessage); } else { m_SceneToLoad = LoseSceneName; m_TimeLoadEndGameScene = Time.time + EndSceneLoadDelay; } }