void PlaySound() { if (audioClip != null) { AudioSource aSrc = SoundManager.Instance.PlayUISoundEffect(audioClip); if (aSrc != null) { AutoDestroyAudio component = aSrc.gameObject.GetComponent <AutoDestroyAudio>(); if (component == null) { component = aSrc.gameObject.AddComponent <AutoDestroyAudio>(); } component.PlayCount = 1; component.DestroyCallback = delegate() { SoundManager.Instance.StopSoundEffect(aSrc); }; } } }
void play() { if (m_AudioClip != null) { if (m_AudioSource == null) { m_AudioSource = SoundManager.Instance.PlaySoundEffect(m_AudioClip, transform.position, 0, m_Range, m_Loop); if (m_AudioSource == null) { return; } AutoDestroyAudio component = m_AudioSource.GetComponent <AutoDestroyAudio>(); if (component != null) { component.PlayCount = m_Loop ? int.MaxValue : 1; } } if (!m_AudioSource.isPlaying) { m_AudioSource.Play(); } } }
public override void OnLoadComplete() { AudioSource aSrc = AudioSourcePools.instance.SpawnByFile(m_FileName, m_Position, m_ParentNode); if (aSrc != null && aSrc.clip != null) { aSrc.pitch = 1; aSrc.volume = SoundManager.Instance.EffectSoundVolume; aSrc.loop = m_PlayCount > 1 ? true : false; aSrc.minDistance = m_MinDistance; aSrc.maxDistance = m_MaxDistance; if (m_IsPlay) { aSrc.Play(); } else { aSrc.Stop(); } AutoDestroyAudio component = aSrc.gameObject.GetComponent <AutoDestroyAudio>(); if (component == null) { component = aSrc.gameObject.AddComponent <AutoDestroyAudio>(); } component.PlayCount = m_PlayCount; component.DestroyCallback = OnComponentDestroy; m_SoundSource = aSrc; } else { this.Destroy(); CommonObjectPools.Despawn(this); return; } }