Beispiel #1
0
    private IEnumerator CrossFadeBgm(AudioClip clip, float duration)
    {
        isCrossFading = true;

        BgmSource tmp = bgmSource;

        bgmSource    = subBgmSource;
        subBgmSource = tmp;

        bgmSource.clip = clip;
        bgmSource.time = 0f;
        bgmSource.Play();

        float time = 0f;

        while (time < duration)
        {
            float t = time / duration;
            bgmSource.volume    = Mathf.Lerp(0f, bgmVolume, t);
            subBgmSource.volume = Mathf.Lerp(bgmVolume, 0f, t);
            yield return(null);

            time += Time.unscaledDeltaTime;
        }
        bgmSource.volume = bgmVolume;
        subBgmSource.Stop();

        isCrossFading = false;
    }
Beispiel #2
0
 private void InitializeBGM()
 {
     stageReactiveProperty.Subscribe((stage) =>
     {
         if (stage >= BgmClips.Length)
         {
             return;
         }
         BgmSource.Stop();
         BgmSource.clip = BgmClips[stage];
         BgmSource.Play();
     });
 }
Beispiel #3
0
 public void StopBgm()
 {
     BgmSource.Stop();
 }
Beispiel #4
0
 public void UnPauseBgm()
 {
     BgmSource.UnPause();
 }
Beispiel #5
0
 public void PauseBgm()
 {
     BgmSource.Pause();
 }
Beispiel #6
0
 public void PlayBgm()
 {
     BgmSource.Stop();
     BgmSource.Play();
 }
Beispiel #7
0
 public void PlayBgm(AudioClip clip)
 {
     BgmSource.Stop();
     BgmSource.clip = clip;
     BgmSource.Play();
 }