文档章节

unity C#协同程序

梦想游戏人
 梦想游戏人
发布于 2016/03/25 13:38
字数 307
阅读 271
收藏 0

协同程序和多线程有相似之处,但是又不是一个东西

协同程序是可以吧一个函数(routine) 分成几段执行,yield 关键字来等待协同程序的返回,

多线程在多核处理器的环境下能真正并行运行,协同程序任意时刻只有一个代码片段在运行

多线程要考虑线程同步,而协同程序不会,因为任意时刻只有一个协同程序的代码片段在运行

协同函数返回值必须是IEnumerator yield return 来返回 

注意:4.3.1 最大允许协程数量为10000000个

 

1.用于定时器

启动1秒后debug输出
	void Start () {
        StartCoroutine(func());  //立即返回
        //StartCoroutine("func");//立即返回
        
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    IEnumerator func()
    {

        yield return new WaitForSeconds(1);//暂停当前函数片段,让出给其他片段执行,等待WaitForXXXXXX 返回

        Debug.Log("1111111");


    }

2.加载进度显示

   public Text txt;
    // Use this for initialization
    bool is_done;
    int current;
    int total;

    void Start()
    {
        is_done = false;
        current = 0;
        total = 100;
        txt = GameObject.Find("Text").GetComponent<Text>();

        StartCoroutine(loding_sync());
     //   StartCoroutine(    ()=>IEnumerator{} );

    }

    // Update is called once per frame
    void Update()
    {

    }

    IEnumerator loding_sync()
    {

        txt.text = "start to loaing";
        yield return new WaitForSeconds(1.0f);

        for (; current <= total; ++current)
        {
            yield return new WaitForEndOfFrame();
            txt.text = current.ToString() + "%";
            dosomethingelse();
        }

        txt.text = "Done";
       

    }

    void dosomethingelse()
    {
       
    }

 

© 著作权归作者所有

上一篇: Ray射线
下一篇: 位运算
梦想游戏人
粉丝 41
博文 461
码字总数 132517
作品 0
成都
私信 提问
Unity 在 GitHub 发布 Unity 引擎和编辑器的 C# 源代码

3月23日我们在GitHub上发布了Unity引擎和编辑器的C#源代码,仅供Unity学习参考使用。 为何如此决定 为了了解或改进自己的Unity项目,一直以来有用户对Unity .NET程序集反汇编,我们的服务条款...

抢小孩糖吃
2018/03/27
19.7K
20
我不是九爷 带了解 Unity3D与VR虚拟现实

  对于大多数人来说,可能不知道Unity3D是什么,但是却知道VR虚拟现实是什么,更不会把VR虚拟现实和Unity3D联系在一起,外行的人根本不知道这两者之间有什么关系。那么,今天来给你讲解一下...

李伟铭k
2018/07/09
0
0
【转载】Unity3d引用外部的dll

Unity3D 能够很方便的集成一些外部插件,以便调用现有的动态链接库。下面会介绍Unity中如何集成Dll的两种方法。 1. 标准引用 这里所使用的语言是C#。 1.1 新建C#类库项目,这里就不多介绍了。...

小姚
2014/11/19
9.6K
0
HoloLens开发——C++ DLL封装及在win32、Unity、AR眼镜中调用情况

一、C++ Dll基础了解 动态链接库(dll)比较好的介绍在孙鑫《VC++深入详解》第十九章动态链接库中有详细介绍。主要涉及以下问题: 1.静态链接库与动态链接库的区别 https://blog.csdn.net/za...

haitianyunlan
2018/05/09
0
0
unity3d环境安装指南: Unity 4.5.5 + Visual Studio 2010

UnitySetup-4.5.5.exe 官网下载最新版本4.X 安装exe文件 2. Unity 4.x Pro Patch.exe 复制exe到安装目录下 C:Program Files (x86)UnityEditor 运行exe 点击Browse,选择文件夹C:Program Fil...

润物互动技术团队博客
2014/10/28
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程分享Scala系列之模式匹配和样例类

好程序员大数据教程分享Scala系列之模式匹配和样例类 1.样例类 在Scala中样例类是一中特殊的类,样例类是不可变的, 可以通过值进行比较,可用于模式匹配。 定义一个样例类: 构造器中每一个...

好程序员官网
2分钟前
0
0
让nginx上的静态网页在访问的时候没有html后缀

需求背景: 公司产品小姐姐觉得这个访问带html后缀不专业,要求访问不带html后缀 nginx 配置 #原配置 location / { index index.html index.htm index.php; try_files $...

Linux_Anna
3分钟前
0
0
beetl的内置函数

函数调用Beetl内置函数请参考附录,以下列出了常用的函数date 返回一个java.util.Date类型的变量,如 date() 返回一个当前时间(对应java的java.util.Date); ${date( "2011-1-1" , "yy...

gantaos
4分钟前
1
0
spring cloud 2.x版本 Gateway自定义过滤器教程

前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 [toc] 本文基于前两篇文章eureka-server、eureka-client、eureka-ribbon、eureka-feign和spring-gataway的实现。 参考......

毛毛向前冲V5
7分钟前
2
0
VPGAME 的 Kubernetes 迁移实践

作者 | 伍冲斌 VPGAME 运维开发工程师 导读:VPGAME 是集赛事运营、媒体资讯、大数据分析、玩家社群、游戏周边等为一体的综合电竞服务平台。总部位于中国杭州,在上海和美国西雅图分别设立了...

阿里巴巴云原生
12分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部