1

我在 Unity 上编写了一个游戏项目,并且偶然发现无法在主菜单中无限播放音频。

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

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

public AudioClip menu;
private AudioSource audio;

void Start() {
        ...
        audio = GetComponent<AudioSource>();
        audio.loop = true;
        audio.PlayOneShot(menu);
        ...
}
4

2 回答 2

3
public AudioClip menu;
private AudioSource Audio;

void Start()
{
    Audio = GetComponent<AudioSource>();
    Audio.clip = menu;
    Audio.loop = true;
    Audio.Play();
}
于 2019-12-21T20:13:24.213 回答
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);
        }
    }
于 2019-12-22T00:24:58.373 回答