StartCoroutine协同程序

StartCoroutine(IEnumerator)

StartCoroutine(string methodName)

StartCoroutine(string methodName,Object value)

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

异步协同(案例代码)

 void Start()
{
print("start"+Time.time);
StratCoroutine(WaitAndPrint(5.0f));
print("finish"+Time.time);
}
IEnumerntor WaitAndPrint(float time)
{
yield return new WaitForSeconds(time);
print("wait'+Time.time);
}

异步协同

该代码的执行结果为

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),可以视为条件判断的一种

MonoBehaviour.StartCoroutine开启协同程序的更多相关文章

  1. 9. MonoBehaviour.StartCoroutine 开始协同程序

    function StartCoroutine (routine : IEnumerator) : Coroutine 描述:开始协同程序. 一个协同程序在执行过程中,可以在任意位置使用yield语句 ...

  2. Unity3D协同程序(Coroutine)

    摘要下: 1. coroutine, 中文翻译"协程".这个概念可能有点冷门,不过百度之,说是一种很古老的编程模型了,以前的操作系统里进程调度里用到过,现在操作系统的进程调度都是根 ...

  3. Coroutine协同程序介绍(Unity3D开发之三)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=496 Coroutine在Uni ...

  4. (转)Unity3D协同程序(Coroutine)

    一.什么是协同程序 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行.换句话说,开启协同程序就是开启一个线程. 二.协同程序的开启与终止 在Unity3D中,使用MonoBeha ...

  5. Unity 中的协同程序

    今天咱就说说,协同程序coroutine.(这文章是在网吧敲的,没有unity,但是所有结论都被跑过,不管你信得过我还是信不过我,都要自己跑一下看看,同时欢迎纠错)先说说啥是协程:协同程序是一个非常让 ...

  6. 【转】Unity中的协同程序-使用Promise进行封装(三)

    原文:http://gad.qq.com/program/translateview/7170967 译者:崔国军(飞扬971)    审校:王磊(未来的未来) 在这个系列的最后一部分文章,我们要通过 ...

  7. 【转】关于Unity协同程序(Coroutine)的全面解析

    http://www.unity.5helpyou.com/2658.html 本篇文章我们学习下unity3d中协程Coroutine的的原理及使用 1.什么是协调程序 unity协程是一个能暂停执 ...

  8. 【转】Unity中的协同程序-使用Promise进行封装(二)

    原文:http://gad.qq.com/program/translateview/7170970 译者:王磊(未来的未来)    审校:崔国军(飞扬971)   在上一篇文章中,我们的注意力主要是 ...

  9. 【转】Unity中的协同程序-使用Promise进行封装(一)

    原文:http://gad.qq.com/program/translateview/7170767 译者:陈敬凤(nunu)    审校:王磊(未来的未来) 每个Unity的开发者应该都对协同程序非 ...

随机推荐

  1. ATT&CK如何落地到安全产品

    科普:ATT&CK是什么 ATT&CK的提出是为了解决业界对黑客行为.事件的描述不一致.不直观的问题,换句话说它解决了描述黑客行为 (TTP) 的语言和词库,将描述黑客攻击的语言统一化 ...

  2. 脚本:Tomcat日志切割

    Tomcat日志切割脚本 #!/bin/bash #Tomcat日志切割 Tomcat_logs_path=/data/server/tomcat-8080/logs d=`date +%F` d7= ...

  3. Rocket - tilelink - Bundles

    https://mp.weixin.qq.com/s/jrqBg2AIpQogBrpwNXjmwg   简单介绍Bundles文件中对TileLink规范(1.7.1)的定义. 参考链接:https: ...

  4. (Java实现) 活动选择

    活动选择的类似问题都可以这么写 import java.util.ArrayList; public class huodongxuanze { /** * //算法导论中活动选择问题动态规划求解 * ...

  5. Java实现 LeetCode 558 四叉树交集(四叉树,第一次遇到,研究了半天)

    558. 四叉树交集 四叉树是一种树数据,其中每个结点恰好有四个子结点:topLeft.topRight.bottomLeft 和 bottomRight.四叉树通常被用来划分一个二维空间,递归地将其 ...

  6. Java实现 LeetCode 486 预测赢家

    486. 预测赢家 给定一个表示分数的非负整数数组. 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,--.每次一个玩家只能拿取一个分数,分数被拿取之后不再可 ...

  7. Java实现蓝桥杯二项式的系数规律

    二项式的系数规律,我国数学家很早就发现了. 如[图1.png],我国南宋数学家杨辉1261年所著的<详解九章算法>一书里就出现了. 其排列规律: 1 1 1 2 1 3 3 1 4 6 4 ...

  8. Java实现 洛谷 P1914 小书童——密码

    import java.util.Scanner; public class Main { private static Scanner cin; public static void main(St ...

  9. 机器学习——十大数据挖掘之一的决策树CART算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第23篇文章,我们今天分享的内容是十大数据挖掘算法之一的CART算法. CART算法全称是Classification ...

  10. 实战记录之SQL server报错手工注入

    前言 最近测试了一个站点,这个站点挺有意思,发现没有关闭错误提示,初步猜测是SQL server数据库,后来验证确实是.在这里记录一下实战过程,并详细讲解一下用到的知识点. SQL server报错注 ...