/// <summary> /// 增加声音代理辅助器 /// </summary> /// <param name="soundGroupName">声音组名称</param> /// <param name="soundGroupHelper">声音组辅助器</param> /// <param name="index">声音代理辅助器索引</param> /// <returns>是否增加声音代理辅助器成功</returns> private bool AddSoundAgentHelper(string soundGroupName, SoundGroupHelperBase soundGroupHelper, int index) { //声音代理辅助器 SoundAgentHelperBase soundAgentHelper = Helper.CreateHelper(m_SoundAgentHelperTypeName, m_CustomSoundAgentHelper, index); if (soundAgentHelper == null) { Log.Error("[SoundComponent.AddSoundAgentHelper] Can not create sound agent helper."); return(false); } soundAgentHelper.name = Utility.Text.Format("Sound Agent Helper - {0} - {1}", soundGroupName, index); Transform transform = soundAgentHelper.transform; transform.SetParent(soundGroupHelper.transform); transform.localScale = Vector3.one; //混音器 if (m_AudioMixer != null) { AudioMixerGroup[] audioMixerGroups = m_AudioMixer.FindMatchingGroups(Utility.Text.Format("Master/{0}/{1}", soundGroupName, index.ToString())); if (audioMixerGroups.Length > 0) { soundAgentHelper.AudioMixerGroup = audioMixerGroups[0]; } else { soundAgentHelper.AudioMixerGroup = soundGroupHelper.AudioMixerGroup; } } m_SoundManager.AddSoundAgentHelper(soundGroupName, soundAgentHelper); //添加声音代理辅助器 return(true); }
/// <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 (HasSoundGroup(soundGroupName)) //检查声音组名称 { return(false); } //创建声音组辅助器 SoundGroupHelperBase soundGroupHelper = Helper.CreateHelper(m_SoundGroupHelperTypeName, m_CustomSoundGroupHelper, SoundGroupCount); if (soundGroupHelper == null) { Log.Error("[SoundComponent.AddSoundGroup] Can not create sound group helper."); return(false); } soundGroupHelper.name = Utility.Text.Format("Sound Group - {0}", soundGroupName); Transform trans = soundGroupHelper.transform; trans.SetParent(m_InstanceRoot); trans.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_SoundManager.AddSoundGroup(soundGroupName, soundGroupAvoidBeingReplacedBySamePriority, soundGroupMute, soundGroupVolume, soundGroupHelper)) { return(false); } //添加声音代理辅助器 for (int i = 0; i < soundAgentHelperCount; i++) { if (!AddSoundAgentHelper(soundGroupName, soundGroupHelper, i)) { return(false); } } return(true); }