public void FadeIn(BGMTrack track) { if (track == BGMTrack.Overworld) { BGM.clip = Overworld; BGM.Play(); StartCoroutine(coFadeIn()); } if (track == BGMTrack.Underworld) { BGM.clip = Underworld; BGM.Play(); StartCoroutine(coFadeIn()); } if (track == BGMTrack.Chase) { BGM.clip = Chase; BGM.Play(); StartCoroutine(coFadeIn()); } if (track == BGMTrack.Ending) { BGM.clip = Ending; BGM.Play(); StartCoroutine(coFadeIn()); } }
public void PlayBGM(BGMTrack t) { StopBGM(); m_current.clip = m_tracks[(int)t]; m_current.volume = m_volume; m_current.Play(); m_currentTrack = t; }
public void PlayTrack(BGMTrack track) { if (track == BGMTrack.Overworld) StartCoroutine(coFadeOut(Overworld)); if (track == BGMTrack.Underworld) StartCoroutine(coFadeOut(Underworld)); if (track == BGMTrack.Chase) StartCoroutine(coFadeOut(Chase)); if (track == BGMTrack.Ending) StartCoroutine(coFadeOut(Ending)); }
public void FadeinBGM(BGMTrack t, float fadeSec = 1.0f) { if( m_currentTrack != t ) { StartCoroutine(_FadeIn(t,fadeSec)); } }
public void CrossFade(BGMTrack t, float fadeSec = 1.0f) { StartCoroutine(_CrossFade(t, fadeSec)); }
private IEnumerator _FadeIn(BGMTrack t, float fadeSec) { if( m_current == null ) { m_current = m_sources[0]; } AudioSource src = m_current; src.clip = m_tracks[(int)t]; src.volume = 0.0f; src.Play (); float tStart = Time.time; while( Time.time - tStart < fadeSec ) { float rate = (Time.time - tStart) / fadeSec; src.volume = m_volume * rate; yield return new WaitForEndOfFrame(); } m_current.volume = m_volume; m_currentTrack = t; }
private IEnumerator _CrossFade(BGMTrack t, float fadeSec) { AudioSource fadeout = m_current; AudioSource fadein = (m_current == m_sources[0])? m_sources[1]:m_sources[0]; fadein.clip = m_tracks[(int)t]; fadein.volume = 0.0f; fadein.Play (); float initialVolume = fadeout.volume; float tStart = Time.time; while( Time.time - tStart < fadeSec ) { float rate = (Time.time - tStart) / fadeSec; fadein.volume = m_volume * rate; fadeout.volume = initialVolume * (1.0f - rate); yield return new WaitForEndOfFrame(); } m_current = fadein; m_current.volume = m_volume; m_currentTrack = t; fadeout.Pause(); }