protected virtual void Update() { if (!IsSoundPlayable()) { if (m_IsPlaying) { if (m_AudioObj != null) { m_AudioObj.DestroyAudioObject(); m_AudioObj = null; } m_IsPlaying = false; } } else if ((!m_IsPlaying || m_ReactivateAt <= Time.time) && (m_AudioObj == null || !m_AudioObj.IsPlaying()) && AudioManager.Instance.IsAudioIDLoaded(m_AudioID)) { m_AudioObj = AudioHelper.PlayWithProbabilityOfFirstItem(m_AudioID, transform, m_AudioVolume, 0f, 0f); if (m_AudioObj != null) { OnNewAudioObject(); } m_ReactivateAt = Time.time + m_RetryIntervalSeconds; m_IsPlaying = true; } }
private IEnumerator StopLoopAfter(Single p_Time, AudioObject p_Audio) { yield return(new WaitForSeconds(p_Time)); if (p_Audio != null) { p_Audio.DestroyAudioObject(); } yield break; }