Unity_协程

  在一个协程的在unity中的作用类似与线程,在其他地方看的说是“轻量级的线程”,具体的差别今天就不过多的去深究。下面来举例说明
  如下:
Debug.Log("frist in Start ");
Mathod();
Debug.Log("second in Start ");

这只是普通方法是调用。在调用 mathod 的时候 外面的主线程会的等着 mathod去执行完。然后继续进行下一步。
而协程是
Debug.Log("frist in Start ");
StartCoroutine(Mathod);
Debug.Log("second in Start ");
调用到了mathod方法是 外面的主线程也是不会停止的。两个部分会“齐头并进”;
如图

好吧,其实很好理解嘛:)

那么在unity 调用协程要注意一些格式。
  1. 返回值 必须写出Ienumerator.
  2. 函数中的返回参数必须是 yield return null / 0;
  3. 在调 用时使用startcoroutine() 来调用。
  4. 停止时也是调用stopcoroutine 或者 stopcorouttineall。
比如说:

 private IEnumerator ChangeColor()
    {
        Debug.Log("frist in ChangeColor ");
        yield return new WaitForSeconds(3);
        Cube.GetComponent<MeshRenderer>().material.color = Color.blue;
        Debug.Log("frist in ChangeColor");
        yield return null;
    }
void Start () {
      StartCoroutine(ChangeColor());
    }
值得注意的时调用startcoroutine()和结束的方式stopcoroutine() 必须一致 :
这里有两种方式 Ienumerator 和 函数名 调用的方式。
Ienumerator 方式调用:
private IEnumerator ie;

...
{
ie = Fade();
StartCoroutine(ie);
}
...
{
stopCoroutine(ie);
}
函数名 调用方式:

...{
StartCoroutine("Mathod");
}
...
{
stopCoroutine("Mathod");
}

必须一样才起作用。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值