public static void prepareAudioSources(AudioMixerFacade audioMixer, AudioSource[] audioSources) { for (int i = 0; i < audioSources.Length; i++) { if (isAmbient(audioSources[i])) { audioSources[i].outputAudioMixerGroup = audioMixer.outsideGroup; } else if (isInVessel(audioSources[i])) { audioSources[i].outputAudioMixerGroup = audioMixer.inVesselGroup; } } }
public static AudioMixerFacade InitializeMixer(string path) { AudioMixerFacade instance = new AudioMixerFacade(); if (audioMixer == null) { audioMixer = LoadBundle(path); } instance.MasterGroup = audioMixer.FindMatchingGroups("Master") [0]; instance.InVesselGroup = audioMixer.FindMatchingGroups("InVessel") [0]; instance.OutsideGroup = audioMixer.FindMatchingGroups("Outside") [0]; instance.HelmetGroup = audioMixer.FindMatchingGroups("Helmet") [0]; return(instance); }
void Start() { config = AudioMufflerConfig.loadConfig(); if (!config.EngageMuffler) { return; } GameEvents.onVesselChange.Add(VesselChange); GameEvents.onVesselWasModified.Add(VesselWasModified); AudioSource[] audioSources = FindObjectsOfType(typeof(AudioSource)) as AudioSource[]; audioMixer = AudioMixerFacade .InitializeMixer(KSP.IO.IOUtils.GetFilePathFor(typeof(Muffler), "mixer.bundle") .Replace("/", System.IO.Path.DirectorySeparatorChar.ToString())); StockAudio.PrepareAudioSources(audioMixer, audioSources); audioMixer.setInVesselCutoff(config.WallCutoff); }