/// <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 = CreateHelper.Create(m_SoundAgentHelperTypeName, default(SoundAgentHelperBase)); if (soundAgentHelper == null) { Log.Error("Can not create sound agent helper."); return(false); } soundAgentHelper.name = Utility.Text.Format("Sound Agent Helper - {0} - {1}", soundGroupName, index.ToString()); 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_SoundMethods.AddSoundAgentHelper(soundGroupName, soundAgentHelper); return(true); }
public override void OnPlaySoundSuccess(object userData, ISoundAgent soundAgent) { PlaySoundEntityInfo playSoundInfo = (PlaySoundEntityInfo)userData; if (playSoundInfo != null) { SoundAgentHelperBase soundAgentHelper = (SoundAgentHelperBase)soundAgent.Helper; if (playSoundInfo.BindingEntity != null) { soundAgentHelper.SetBindingEntity(playSoundInfo.BindingEntity); } else { soundAgentHelper.SetWorldPosition(playSoundInfo.WorldPosition); } } }