Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在unity中循环音频?_C#_Loops_Unity3d_Audio_Audio Source - Fatal编程技术网

C# 如何在unity中循环音频?

C# 如何在unity中循环音频?,c#,loops,unity3d,audio,audio-source,C#,Loops,Unity3d,Audio,Audio Source,我当时正在写一个关于Unity的游戏项目,但由于无法在主菜单中无限播放音频而跌跌撞撞 问题是,当我需要重复播放曲目直到播放器离开菜单时,曲目只播放一次(保留在菜单中) 下面是我启用音乐的代码部分。我使用音频剪辑和音频源 public AudioClip menu; private AudioSource audio; void Start() { ... audio = GetComponent<AudioSource>(); aud

我当时正在写一个关于Unity的游戏项目,但由于无法在主菜单中无限播放音频而跌跌撞撞

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

下面是我启用音乐的代码部分。我使用音频剪辑和音频源

public AudioClip menu;
private AudioSource audio;

void Start() {
        ...
        audio = GetComponent<AudioSource>();
        audio.loop = true;
        audio.PlayOneShot(menu);
        ...
}
公共音频剪辑菜单;
私人音频源音频;
void Start(){
...
audio=GetComponent();
audio.loop=true;
音频.播放快照(菜单);
...
}
公共音频剪辑菜单;
私人音频源音频;
void Start()
{
Audio=GetComponent();
Audio.clip=菜单;
Audio.loop=true;
音频播放();
}

如果在编辑器中选中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);
        }
    }
私有音频源音频;
void Start()
{
Start例程(LoopAudio());
}
IEnumerator LoopAudio()
{
audio=GetComponent();
浮动长度=audio.clip.length;
while(true)
{
音频播放();
收益率新的WaitForSeconds(长度);
}
}
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);
        }
    }