当前位置: 首页 > news >正文

Unity的协程(Coroutine)是什么?

在Unity的学习过程中,每当我有需要进行延时的需求时,豆包给到我的建议都是使用一个名为“协程(Coroutline)”的功能来进行处理,而不是使用C#线程中带的Sleep()函数,所以,协程是什么?

 

豆包给的答案是:协程是Unity提供的“时间管理工具”,能把长任务拆成多帧执行,中间可暂停,既不阻塞主线程,又能让“有时间跨度的逻辑”更简洁、更易维护。

协程是Unity中一种“分段执行、可暂停/恢复”的特殊函数,核心作用是【把一个“需要持续一段时间”的长任务,拆成多帧慢慢执行】——既不会阻塞游戏主线程(比如渲染、输入响应),又能让逻辑时间顺序清晰推进。

 

可以把协程想象成:一个能摸鱼的工人,它和Update()对比:

Update()函数一旦被调用,必须从头执行到尾才能返回,期间会“霸占CPU”,不能暂停;协程函数执行到某个暂停点(yield return ...)时,会主动“摸鱼”(暂停自己的执行,把CPU还给游戏主线程(让游戏继续渲染、响应输入)),等满足条件后(比如等1帧、等0.5秒),再从暂停的地方“复工”继续往下执行。

 

协程的核心特征

一、协程的“身份标识”:返回值是IEnumerator

协程函数必须满足:

1、返回值是IEnumerator(不是void / int等普通类型);

2、函数体里必须有yield return...(暂停点);

3、启动方式是StartCoroutine(协程函数名())(不能像其他函数那样直接调用);

 1 // 协程函数:返回值IEnumerator,有yield return null
 2 IEnumerator ChangeClothesCoroutine()
 3 {
 4     // ... 逻辑 ...
 5     yield return null; // 暂停点:等1帧后恢复
 6     // ... 继续执行 ...
 7 }
 8 
 9 // 启动协程(在Update里)
10 StartCoroutine(ChangeClothesCoroutine());

二、协程的“暂停开关”:yield return ...

yield return ... 是协程的核心(它决定了“暂停多久”什么时候恢复)。

yield return null:暂停当前协程,等待1帧(让游戏渲染完当前画面、处理完输入后),下一帧自动恢复执行;

其他常用的暂停方式:

1 yield return new WaitForSecond(0.5f):暂停0.5秒后恢复;
2 yield return StartCoroutine(另一个协程()):等待另一个协程执行完再恢复;
3 yield return new WaitForEndOfFrame():等待当前帧渲染结束后恢复;

三、协程的关键注意点(避免踩坑)

1、协程不是多线程:协程和Update、LateUpdate一样,都在主线程里执行!它只是“分段执行”,并不是“并行执行”(如果协程里有耗时操作(如循环10000次计算),游戏还是会卡住)。

2、协程依赖MonoBehaviour:必须挂在有MonoBehavior的游戏对象上,才能用StartCoroutine启动;如果游戏对象销毁,协程会自动停止。

3、停止协程的方式:

1 StopCoroutine(协程名):停止指定协程;
2 StopAll C哦routine():停止该脚本上所有协程;
3 游戏对象销毁/脚本禁用:协程自动停止;

4、协程的“暂停”是主动的:只有遇到yield return ...才会暂停,没有暂停点的协程回像普通函数一样一次性执行完。

 

http://www.jsqmd.com/news/42634/

相关文章:

  • 20232313 2025-2026-1 《网络与系统攻防技术》实验六实验报告 - 20232313
  • cURL变量管理中的缓冲区越界读取漏洞分析
  • work 5
  • GPIO(上) - LI,Yi
  • Python - Dont forget the , when define a tuple
  • Vmware17虚拟网络使用
  • 2025年33BL无刷电机批发厂家权威推荐榜单:110BLF无刷电机/57BLF无刷电机/42BLF无刷电机源头厂家精选
  • 4:GPIO(上) - LI,Yi
  • 2025年北京智能外呼系统公司权威评测:外呼电销机器人/呼叫中心系统/电销外呼软件源头服务商精选
  • 内存管理-52-memory overcommit-1-文档翻译 - Hello
  • 2025年江苏车辆防撞雷达系统服务综合评估:车辆预警防撞系统/车辆防撞系统材料/车辆防撞预警监测源头服务商精选
  • [Python刷题记录]-二叉树的中序遍历-二叉树-简单
  • QGIS开发笔记(五):qgis加载标记点功能,基础标记数量与性能对比测试
  • 2025敏感肌面霜选购指南,从泛红到维稳全搞定!5大温和修护品牌实测
  • 2025留学机构哪些好
  • 2025杭州好的留学机构有哪些
  • 2025出国留学机构国内排名榜
  • 2025成都最好的留学中介机构有哪些公司
  • 2025年长沙心理咨询机构专业度排名,线上/在线公司口碑推荐
  • 2025年电动护理床批发厂家权威推荐榜单:医院办公家具/医用医疗床/候诊椅源头厂家精选
  • 2025年新中式高定服装五大品牌权威推荐,诚信的新中式高定服装品牌色麦新中式层层把关品质优
  • OpenEuler安装Java + Mysql环境
  • 2025油皮必囤面霜清单:构象编织霜领衔,控油抗老/补水不黏腻/敏肌适配款怎么选
  • 2025 年 11 月混合机厂家推荐排行榜,卧式螺带混合机,锥形螺杆螺带混合机,双锥混合机,V型混合机,二维运动混合机,三维运动混合机,槽型混合机公司推荐
  • 干皮救星面霜榜单2025:高保湿抗老品牌全解析,深滋润强修护不踩雷
  • 2025 年 11 月真空上料机厂家推荐排行榜,电动真空上料机,气动真空上料机,全自动真空上料机公司推荐
  • 2025年廊坊电线电缆十大厂家推荐排行榜,阻燃电缆供应厂家,耐火电线公司,防火电缆厂家排名,消防电缆厂家,电线电缆供应厂家-云岭兴成
  • 2025 年 11 月铝合金门窗厂家推荐排行榜,断桥门窗,断桥推拉门窗,系统门窗,金属门窗,阳台门窗,封阳台门窗,平开门窗,推拉门窗,折叠门窗公司推荐
  • 2025 年 11 月增压器厂家权威推荐榜单:涡轮增压器/汽车涡轮增压器/增压器总成/增压器叶轮/增压器机芯/工程机械增压器/丰田增压器/五十铃增压器/底特律增压器
  • 2025 年 11 月不锈钢珠、碳钢珠厂家推荐排行榜,316/304/420/440不锈钢珠,轴承铬钢珠,高精度碳钢珠,弹簧定位钢珠公司精选