bul*_*ter 1 c# unity-game-engine
我想更改 AudioSources 音量,并且想通过更改 AudioMixerGroup 来实现。
我正在尝试通过脚本将 AudioSources 的 AudioMixerGroup 更改为新的,并通过以下方式加载它:
audioSource.outputAudioMixerGroup = Resources.Load("Resources/AudioMixerWithSound") ; //Here it can convert an object to explicit AudioMixerGroup.
//audioSource.AudioMixerGroup = Resources.Load("AudioMixer/AudioMixerGroup") as AudioMixerGroup; // Here AudioMixerGroup doesn't exist.
Run Code Online (Sandbox Code Playgroud)
那么如何更改AudioSource的outputAudioMixeGroup呢?
实际上没有名为 的 Unity 资源AudioMixerGroup。请注意,您可以创建的唯一音频混合资源是AudioMixer转到Assets --> Create --> AudioMixer。如果这就是您创建混音器的方式,则要加载的资源文件类型不是AudioMixer,AudioMixerGroup扩展名应该是“.mixer”。
请注意,您不要在函数中包含资源文件夹名称Resources.Load。如果要加载的“AudioMixerWithSound”文件是 Resources 文件夹,您将使用Resources.Load("AudioMixerWithSound")加载它而不是Resources.Load("Resources/AudioMixerWithSound"). 此外,不包括扩展名“.mixer” 。
AudioMixer从资源文件夹加载文件:
//Get the AudioSource
AudioSource audioSource = GetComponent<AudioSource>();
//Load AudioMixer
AudioMixer audioMixer = Resources.Load<AudioMixer>("AudioMixerWithSound");
//Find AudioMixerGroup you want to load
AudioMixerGroup[] audioMixGroup = audioMixer.FindMatchingGroups("Master");
//Assign the AudioMixerGroup to AudioSource (Use first index)
audioSource.outputAudioMixerGroup = audioMixGroup[0];
Run Code Online (Sandbox Code Playgroud)
AudioMixerGroup请注意,在使用 找到 的地方FindMatchingGroups("Master"),如果它是子对象,则可以/像使用该GameObject.Find函数一样访问子对象。例如,FindMatchingGroups("Master/child")。请参阅文档以获取更多信息。