按顺序播放多个音频片段

时间:2017-05-01 07:00:17

标签: c# unity3d

我有一个基于统一的游戏,可以播放超过3-5分钟。所以,我想要一组可以一个接一个播放的歌曲(至少2个)。

我知道如何将一个特定的音频源设置为场景的主摄像头并将其设置为循环;但这会是单调的,所以我想知道如何将一组歌曲添加到特定场景并以顺序方式播放它们?

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

  

如何将一组歌曲添加到特定场景并在一个场景中播放   顺序时尚

这很容易。仅使用一个AudioSource。使用AudioClip保持要播放的音频。如果可能,请使用AudioClip数组。

1 。使用for循环遍历AudioClip数组。

2 。在每个循环中,将循环中的当前AudioClip指定给AudioSource.clip变量。

3 。之后调用AudioSource.Play();播放音频。

4 。使用while循环等待当前AudioClip完成while (AudioSource.isPlaying){ yield return null;}的播放

5 。返回#2

public AudioSource adSource;
public AudioClip[] adClips;

IEnumerator playAudioSequentially()
{
    yield return null;

    //1.Loop through each AudioClip
    for (int i = 0; i < adClips.Length; i++)
    {
        //2.Assign current AudioClip to audiosource
        adSource.clip = adClips[i];

        //3.Play Audio
        adSource.Play();

        //4.Wait for it to finish playing
        while (adSource.isPlaying)
        {
            yield return null;
        }

        //5. Go back to #2 and play the next audio in the adClips array
    }
}

要启动它,只需拨打StartCoroutine(playAudioSequentially());