/// <summary> /// Checks to see if the message contains a system event and, if it does, it triggers a predefined action. /// <para /> /// A game event string is considered to be a system event if it is contained in the SystemGameEvent enum values. /// <para /> /// This method is automatically called every time a GameEventMessage is sent. /// </summary> /// <param name="message"> Target GameEvent message </param> /// <param name="debug"> Print info debug messages to console? </param> public static void ProcessGameEvent(GameEventMessage message, bool debug = false) { if (message == null) { return; } if (Instance.DebugComponent || debug && !message.IsSystemEvent) { DDebug.Log("Received '" + message.EventName + "' game event.", Instance); } if (!message.IsSystemEvent) { return; } var @event = (SystemGameEvent)Enum.Parse(typeof(SystemGameEvent), message.EventName); if (Instance.DebugComponent || debug) { DDebug.Log("Received '" + @event + "' system game event.", Instance); } switch (@event) { case SystemGameEvent.Back: BackButton.Instance.Execute(); break; case SystemGameEvent.ApplicationQuit: #if UNITY_EDITOR EditorApplication.isPlaying = false; #else Application.Quit(); #endif break; case SystemGameEvent.ActivateLoadedScenes: SceneLoader.ActivateLoadedScenes(); break; } }