如何控制多个音乐依次播放

     其实控制音乐依次播放关键在于要让 AudioSource组件的AudioClip不断地更换音乐,刚开始我是使用for循环的方法,但是遇到一个最大的问题就是循环执行太快,我本来是想每次将数组里面的三个音乐依次播放,但是每次只能播放数组里面的最后一个音乐,就是因为for循环执行太快,因此我接下来想到了使用协程来控制的办法。

      使用协程的原理就是让程序暂时停止,因为我也是刚刚入门的新手,所以对协程的理解仅仅局限于此,更多更深层次的理解请去搜索资料,我的具体代码如下:我在一个函数里面点击按钮之后,开始执行agree方法,但是依次播放的音乐不要放在agree函数体里面,放在里面仍然无法实现功能,只有放在思协程函数里面才能实现暂时的停止功能。

   public AudioClip[] audio;
    public AudioSource audioSource;
    public AudioClip[] clips;

   private void Awake()
    {    audioSource = GetComponent<AudioSource>();}

 

  public void agree()
    {
        //for (int i = 0; i < 3; i++) {

           // audioSource.clip = clips[0];//然后用audioSource的对象clip进行赋值
            StartCoroutine(waitTime());//调用协程
            //audioSource.Play();

    }
    IEnumerator  waitTime() {

        for (int i = 0; i < 3; i++)
        {
            clips[i] = audio[i];
            audioSource.clip = clips[i];//然后对AudioSource的对象clip进行赋值,也就是更换AudioClip的过程
            audioSource.Play();//调用AudioSource的实例化对象进行播放
            yield return new WaitForSeconds(1f);//过1秒后
        }

    }

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值