首页 > 解决方案 > unity改变输出AudioMixerGroup

问题描述

我想改变 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.

那么如何更改 AudioSource 的 outputAudioMixeGroup 呢?

标签: c#unity3d

解决方案


确实没有名为 的 Unity 资产AudioMixerGroup。请注意,您可以创建的唯一音频混合资产是AudioMixer转到Assets --> Create --> AudioMixer。如果这是您创建混音器的方式,那么要加载的资源文件类型AudioMixer不是AudioMixerGroup,扩展名应该是".mixer"

请注意,您没有在Resources.Load函数中包含资源文件夹名称。如果要加载的“AudioMixerWithSound”文件是 Resources 文件夹,您将使用Resources.Load("AudioMixerWithSound")它来加载它而不是Resources.Load("Resources/AudioMixerWithSound"). 此外,不包括扩展名“.mixer” 。

AudioMixer从 Resources 文件夹加载文件:

//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];

请注意,如果 是子对象,则可以AudioMixerGroup像使用函数一样访问子对象。例如,。有关更多信息,请参阅文档FindMatchingGroups("Master")/GameObject.FindFindMatchingGroups("Master/child")


推荐阅读