void OnSceneChanged(Scene previousScene, Scene changedScene) { Debug.Log(SceneHelper.CurrentScene.ToString()); var previousSceneSoundTrackData = currentSceneSoundTrackData; var changedSceneType = SceneHelper.GetSceneTypeByScene(changedScene); Debug.Log("OnSceneChanged changedScene = " + changedSceneType.ToString()); var changedSceneSoundtrackData = sceneSoundTracks.Where(s => s.soundTrackScene == changedSceneType).FirstOrDefault(); if (changedSceneSoundtrackData != null) { SetSceneSoundTrack(changedSceneSoundtrackData); // = 1 if (previousSceneSoundTrackData == null) { base.PlayNewSoundTrackLooped(); // = 2 } else { foreach (var prev in previousSceneSoundTrackData.allowedScenes) { Debug.Log("Allowed Scenes = " + prev.ToString()); } if (previousSceneSoundTrackData.allowedScenes.Contains(changedSceneType)) { // dont stop music = 0 // change sound track to changed scenes = 1 Debug.Log("current scene allowed. dont stop the music"); } else { // change sound track to changed scenes = 1 // stop previouse soundTrack = 2 // play changed soundtrack = 2 Debug.Log("current scene NOT allowed. stop the music"); base.PlayNewSoundTrackLooped(); // = 2 } } } }