private void PlayState(string soundName, SoundItem soundItem) { soundItem.Play(Mute, volume); if (!dicAllSounds.ContainsKey(soundName)) { dicAllSounds.Add(soundName, soundItem); } }
/// <summary>播放声音</summary> private void playSound(string soundName, Transform target, bool isLoop, DelSoundCallback callback) { DeleteNullSound(soundName); if (!m_DicAllAudioClip.ContainsKey(soundName) || m_DicAllAudioClip[soundName] == null) { return; } if (m_DicAllSound.ContainsKey(soundName) && m_DicAllSound[soundName] != null) { m_DicAllSound[soundName].target = target; m_DicAllSound[soundName].audioSource.loop = isLoop; m_DicAllSound[soundName].onCallback = callback; m_DicAllSound[soundName].Play(Mute, Volume); } else { if (m_DicAllSound.ContainsKey(soundName)) { m_DicAllSound.Remove(soundName); } GameObject item = new GameObject(soundName); AudioSource audioSource = item.AddComponent <AudioSource>(); audioSource.playOnAwake = false; audioSource.loop = isLoop; SoundItem soundItem = item.AddComponent <SoundItem>(); soundItem.soundName = soundName; soundItem.onCallback = callback; soundItem.target = target; soundItem.audioSource = audioSource; soundItem.clip = m_DicAllAudioClip[soundName]; soundItem.Play(Mute, Volume); m_DicAllSound.Add(soundName, soundItem); } }