如何在Unity中循环音频?

4

我在Unity上写游戏项目时遇到了一个问题,无法使音频在主菜单中无限播放。

问题是当我需要音轨不断重复直到玩家离开菜单时,它只会播放一次(而且仍然停留在菜单中)。

这是我启用音乐的代码部分。我使用AudioClip和AudioSource来实现。

public AudioClip menu;
private AudioSource audio;

void Start() {
        ...
        audio = GetComponent<AudioSource>();
        audio.loop = true;
        audio.PlayOneShot(menu);
        ...
}
2个回答

6
public AudioClip menu;
private AudioSource audioSource;

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

0
如果您在编辑器中的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);
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接