private void OnDestroy() { if (_instance == this) { _instance = null; EventManager.Instance.RemoveListener <OnDungeonLeft>(StartFightMusic); EventManager.Instance.RemoveListener <OnPortalEntered>(StartDungeonMusic); EventManager.Instance.RemoveListener <OnMenuOpened>(StartMenuMusic); EventManager.Instance.RemoveListener <OnMenuClosed>(ResumeMusicAfterMenuClosed); EventManager.Instance.RemoveListener <OnGameLoaded>(StartDungeonMusic); } }
private void Awake() { if (_instance == null) { _instance = this; DontDestroyOnLoad(gameObject); musicSpeaker = GetComponent <AudioSource>(); EventManager.Instance.AddListener <OnDungeonLeft>(StartFightMusic); EventManager.Instance.AddListener <OnPortalEntered>(StartDungeonMusic); EventManager.Instance.AddListener <OnMenuOpened>(StartMenuMusic); EventManager.Instance.AddListener <OnMenuClosed>(ResumeMusicAfterMenuClosed); EventManager.Instance.AddListener <OnGameLoaded>(StartDungeonMusic); EventManager.Instance.AddListener <OnLevelCompleted>(StopMusic); } else { Destroy(gameObject);//Prevent object duplicates when switching scenes } }