unity基础(九)协程原理

1协程可分为两部分 协程函数本体和协程调度器,

协程本体就是一个能够中间暂停返回的函数

协程调度器是unity内部实现的,会在对应的时机帮助我们继续执行协程函数

unity只实现了协程调度部分

协程本质上就是一个c#的迭代器方法

协程函数本体如果我们不通过开启协程方法进行

untiy的协程调度器是不会帮助我们管理协程函数的

但是我们可以自己执行进行的迭代器接口

cs 复制代码
IEnumerator Test()
{
    print("第一次执行");
    yield return 1;
    print("第二次执行");
    yield return 2;
    print("第三次执行");
    yield return 3;
    print("第四次执行");
    yield return  new TestClass(10);
}

 ie.MoveNext();  //执行内容,直到遇到yield return 为止
 print(ie.Current);//返回出当前的yield return

ie.MoveNext() ;
print(ie.Current);

ie.MoveNext();
print(ie.Current);

ie.MoveNext();
print(ie.Current);

//一步到位  上面是步步都写。
//MoveNext 返回值 代表着是否到了结尾 这个迭代器函数 是否执行完毕

    while (ie.MoveNext())
    {
        print(ie.Current);
    }
    
    StartCoroutine(Test());
}

2 协程调度器

继承MonoBehavior后 开启协程

相当于是把一个协程函数 (迭代器) 放入unity的协程调度中帮助我们管理进行执行

具体的yield return 后面的规则 也是unity定义的一些规则

相关推荐
辻弋2013 天前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
Martina_03213 天前
AI生成3D场景导入 Unity/Unreal 后,NPC 总串层?用6步检查导航高度与跨层连接
人工智能·游戏·数学建模·3d·unity·自然语言处理·aigc
小贺儿开发3 天前
Unity 局域网遥控幻灯片展示工具 3.0
科技·http·unity·工具·ppt·通信·网页
WarPigs5 天前
Unity对象不应该使用null传播的问题
unity
每日出拳老爷子6 天前
【VR】【Unity】抓走转放系列21|一天搭完门和抽屉工具槽:小场景按这个次序拼装
unity·vr·驱动·排错·snap zone
淡海水7 天前
02-02-原理篇-分代GC
算法·unity·c#·游戏引擎·.net·gc
小贺儿开发7 天前
Unity 文物新生 会讲故事的文物展墙
人工智能·科技·unity·ai·视频·互动·演示
淡海水7 天前
02-03-原理篇-大对象堆
unity·c#·游戏引擎·.net·gc
WarPigs8 天前
Unity在Create菜单添加创建自定义脚本模板选项
unity
郝学胜-神的一滴8 天前
C++ Templates 01:拨开迷雾,读懂C++模板经典著作
开发语言·c++·程序人生·游戏·游戏引擎·软件构建