Unity中的协程

      协程就是在主程序运行的同时又开启一个逻辑处理程序来协助当前程序,协程程序相当一个线程。协程其实就是一个IEnumerator(迭代器),其中必须含有yield return ,yield return语句是一种特殊的返回语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。

     常用的yield return语句:

               yield return new WaitForSeconds();//等待几秒,括号中填数字

               yield return null / 0;//等待一帧

               yield return new WaitForEndOfFrame();//等待一个固定的帧,有降低卡频率的作用

      一个协程的声明格式:

        IEnumerator 协程名(){ yield return语句;  }(如果协程中有循环语句可通过 yield break跳出循环)

        开启协程:

        开启一个协程用StartCoroutine("协程名")或StartCoroutine(协程名()),一般协程的开启在Unity生命周期函数中的Start()函数中开启,不建议在Update()函数中直接开启一个协程,避免卡死

        结束协程:

        1、用StopCoroutine("协程名")结束一个协程

        2、用StopAllCoroutines()结束所用协程

        3、明一个协同程序(Coroutine变量,再将StartCoroutine(协程名())赋值给协程变量,再用StopCoroutine(变量名)结束协程     

    例:

打印5个数字,每隔1秒打印一个数字,当打印到3的时候停止打印

Coroutine c;

private void Start () {

c=StartCoroutine(Clone());

}

IEnumerator Clone()

    {

        for (int i = 1; i <= 5; i++)

        {

            if (i == 3)

            {

                StopCoroutine(c);

            }

            yield return new WaitForSeconds(1);

        }

 }

特别说明:

  1、用StartCoroutine("协程名")开启协程,可以用上述的三种方法结束协程

   2、用StartCoroutine(协程名())开启协程,只能用后两钟方法结束协程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值