• MonoBehaviour.StartCoroutine开启协同程序


    StartCoroutine协同程序

    StartCoroutine(IEnumerator)

    StartCoroutine(string methodName)

    StartCoroutine(string methodName,Object value)

    顾名思义,协同就是在已经执行的程序中开启另外一个线程。简单的分为两种,一种是同步协同,另一种是异步协同。

    异步协同(案例代码)

     1 void Start()
     2 {
     3 print("start"+Time.time);
     4 StratCoroutine(WaitAndPrint(5.0f));
     5 print("finish"+Time.time);
     6 }
     7 IEnumerntor WaitAndPrint(float time)
     8 {
     9 yield return new WaitForSeconds(time);
    10 print("wait'+Time.time);
    11 }
    异步协同

    该代码的执行结果为

    start0

    finish0

    wait5

    同步协同(案例代码)

    IEnumerator Start()
    {
    print("start"+Time.time);
    yield return StartCoroutine(WaitAndPrint(5.0f));
    print("finish"+Time.time);
    }
    IEnumerator WaitAndPrint(float time)
    {
    yield return new WaitForSeconds(time);
    print("finish"+time);
    }
    同步协同

    start0

    wait5

    finish5

    心得理解:StartCoroutine只是起到一个调用的作用,真正起作用的是yield return


    使用同一线程要在使用 yield return StartCoroutine(方法);返回值类型大都是IEnumerator.IEnumerable

    使用不用的线程要使用StartCoroutine(方法):

    yiled return new WaitForSeconds(float time);

    yiled return new WaitUntil(bool);

    yiled return new WaitWhile();

    yiled return 通俗易懂些就是为了让后者被作用的对象,执行完之后,才进行下一步操作

    yiled return new WaitForSeconds(float 2.f)就犹如if(time>2.0f),可以视为条件判断的一种

  • 相关阅读:
    UVA——A Spy in the Metro(线性dp)
    IDEA运行jsp文件变成源码详细解决方案
    CF1105C Ayoub and Lost Array(dp+矩阵快速幂优化)
    牛客练习赛75——A广义肥波
    void * 指针和const 指针
    详解getchar()函数与缓冲区
    深入了解scanf() getchar()和gets()等函数之间的区别
    字符串和指针注意
    指针
    数组和字符串的小结
  • 原文地址:https://www.cnblogs.com/HeYIcengshuo/p/6432380.html
Copyright © 2020-2023  润新知