如何统一循环播放音频?

How to loop an audio in unity?

我在 Unity 上编写游戏项目时遇到无法在主菜单中无限播放音频的问题。

问题是曲目只播放一次(同时停留在菜单中),当我需要重复播放直到玩家离开菜单时。

这是我启用音乐的代码部分。我为此使用 AudioClip 和 AudioSource。

public AudioClip menu;
private AudioSource audio;

void Start() {
        ...
        audio = GetComponent<AudioSource>();
        audio.loop = true;
        audio.PlayOneShot(menu);
        ...
}
public AudioClip menu;
private AudioSource Audio;

void Start()
{
    Audio = GetComponent<AudioSource>();
    Audio.clip = menu;
    Audio.loop = true;
    Audio.Play();
}

如果您在编辑器的 AudioSource 组件中选中 Loop 选项,它应该可以工作。如果没有,你搞砸了。还有另一种方法,你可以像这样循环它。

private AudioSource audio;

    void Start()
    {

        StartCoroutine(LoopAudio());
    }

    IEnumerator LoopAudio()
    {
        audio = GetComponent<AudioSource>();
        float length = audio.clip.length;

        while(true)
        {
            audio.Play();
            yield return new WaitForSeconds(length);
        }
    }