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定义的一些规则

相关推荐
weixin_424294671 小时前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯1 小时前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda12141 小时前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯2 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
Oiiouui21 小时前
Godot-GridGame架构DI容器全局联动设计
架构·游戏引擎·godot
平行云1 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige2 天前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎
wgslucky2 天前
Godot UI管理与使用
游戏引擎·godot
Oiiouui3 天前
Godot-GridGame架构屏幕UI层
架构·游戏引擎·godot