zoukankan      html  css  js  c++  java
  • 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),可以视为条件判断的一种

  • 相关阅读:
    Cs231n课堂内容记录-Lecture1 导论
    Linux实时查询GPU使用命令
    导出excel的简单方法
    正则表达式的一些应用
    4、Python语法之变量
    javaScript中对typeof 和 instanceof 的使用及理解
    JavaScrpt 变量作用域
    真香的flex弹性布局
    css调试与样式优先级
    css3新样式
  • 原文地址:https://www.cnblogs.com/HeYIcengshuo/p/6432380.html
Copyright © 2011-2022 走看看