private AudioMixer SpawnAudioMixer() { #if UNITY_EDITOR // define audio mixer name based on object ID audioMixerName = "AnaglyphAudioMixer" + gameObject.GetInstanceID(); // create audio mixer (unity editor only) AssetDatabase.CopyAsset(AnaglyphConfig.GetAudioMixerAssetPath(), AnaglyphConfig.GetAudioMixerAssetPath(audioMixerName)); // load audio mixer AudioMixer audMix = Resources.Load <AudioMixer> (audioMixerName); Debug.Log(gameObject.name + " audio mixer: " + audMix.name); // get all audio sources attached to object AudioSource[] audioSources = GetComponents <AudioSource>(); // loop over audio sources and set output to Anaglyph audio mixer foreach (var audioSource in audioSources) { Debug.Log("object " + gameObject.name + ", audio source: " + audioSource.name); audioSource.outputAudioMixerGroup = audMix.FindMatchingGroups("Master")[0]; } return(audMix); #else return(null); #endif }
void OnDestroy() { #if UNITY_EDITOR // discard if script disabled (as OnDestroy method may be called even then..) or if spawn audio mixer option disabled if (!this.enabled || !spawnedAudioMixer) { return; } // delete audio mixer created for object instance AssetDatabase.DeleteAsset(AnaglyphConfig.GetAudioMixerAssetPath(audioMixerName)); #endif }