/// <summary> /// 增加声音组。 /// </summary> /// <param name="soundGroupName">声音组名称。</param> /// <param name="soundGroupAvoidBeingReplacedBySamePriority">声音组中的声音是否避免被同优先级声音替换。</param> /// <param name="soundGroupMute">声音组是否静音。</param> /// <param name="soundGroupVolume">声音组音量。</param> /// <param name="soundAgentHelperCount">声音代理辅助器数量。</param> /// <returns>是否增加声音组成功。</returns> public bool AddSoundGroup(string soundGroupName, bool soundGroupAvoidBeingReplacedBySamePriority, bool soundGroupMute, float soundGroupVolume, int soundAgentHelperCount) { if (m_SoundMethods.HasSoundGroup(soundGroupName)) { return(false); } SoundGroupHelperBase soundGroupHelper = CreateHelper.Create(m_SoundGroupHelperTypeName, default(SoundGroupHelperBase)); if (soundGroupHelper == null) { Log.Error("Can not create sound group helper."); return(false); } soundGroupHelper.name = Utility.Text.Format("Sound Group - {0}", soundGroupName); Transform transform = soundGroupHelper.transform; transform.SetParent(m_InstanceRoot); transform.localScale = Vector3.one; if (m_AudioMixer != null) { AudioMixerGroup[] audioMixerGroups = m_AudioMixer.FindMatchingGroups(Utility.Text.Format("Master/{0}", soundGroupName)); if (audioMixerGroups.Length > 0) { soundGroupHelper.AudioMixerGroup = audioMixerGroups[0]; } else { soundGroupHelper.AudioMixerGroup = m_AudioMixer.FindMatchingGroups("Master")[0]; } } if (!m_SoundMethods.AddSoundGroup(soundGroupName, soundGroupAvoidBeingReplacedBySamePriority, soundGroupMute, soundGroupVolume, soundGroupHelper)) { return(false); } for (int i = 0; i < soundAgentHelperCount; i++) { if (!AddSoundAgentHelper(soundGroupName, soundGroupHelper, i)) { return(false); } } return(true); }