Unity的协程(Coroutine)是什么?

news/2025/11/17 14:18:19/文章来源:https://www.cnblogs.com/jiayezi/p/19231877

在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.mzph.cn/news/967905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20232313 2025-2026-1 《网络与系统攻防技术》实验六实验报告 - 20232313

1.实验内容基本实验内容如下:掌握metasploit的用法2.实验过程 总共5个任务,如下: (1)进行对靶机的前期渗透; (2)利用Vsftpd源码包后门漏洞(21端口); (3)利用SambaMS-RPC Shell命令注入漏洞(端口139); …

cURL变量管理中的缓冲区越界读取漏洞分析

本文详细分析了cURL工具中addvariable()函数因缺少NUL终止符而导致的缓冲区越界读取漏洞,包含完整的复现步骤、代码分析和潜在影响评估,揭示了变量管理机制中的安全隐患。漏洞概述 在cURL的addvariable()函数(由set…

work 5

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14581 学号:102500321 姓名:陈传星

iOS 免费抓包工具怎么选?从基础代理到多协议分析的完整指南

本文对 iOS 免费抓包工具的能力、局限和适用场景进行系统分析,介绍代理抓包、tcpdump/Wireshark 等方案,并说明如何在 HTTPS 抓取失败、pinning、QUIC 或 TCP 数据流场景下如何按 App/域名过滤并导出 pcap,用于深度…

GPIO(上) - LI,Yi

介绍STM32的外设-GPIO视频选集(5/50)[3-1] GPIO输出 参考21. GPIO简介GPIO(General Purpose Input Output):通用输入输出口引脚电平:0V~3.3V,部分引脚可容忍5V容忍5V的意思是,在输入模式下,该引脚上若施加5V的…

Python - Dont forget the , when define a tuple

Python - Dont forget the , when define a tuple root_ids = (abcd) root_ids_tuple = (abcd,) root_ids_list = [abcd]print(type(root_ids)) print(---------------------------) print([f"{item}" for i…

Vmware17虚拟网络使用

一、虚拟机使用主机网络(已连接互联网)Vmware主页面选择“编辑”→“虚拟网络编辑器”,打开虚拟网络编辑器设置面板,如下图所示:选择VMnet0并选择类型为桥接模式,已桥接至可选择自动,还可以指定桥接已经连接互联…

2025年33BL无刷电机批发厂家权威推荐榜单:110BLF无刷电机/57BLF无刷电机/42BLF无刷电机源头厂家精选

在工业自动化浪潮的推动下,33BL无刷电机以其紧凑的结构和优异的调速性能,正成为医疗仪器、小型雕刻机等精密设备的核心动力来源,市场需求持续攀升。 01 行业趋势:33BL无刷电机市场概况 无刷电机作为工业自动化的核…

Spoon9.1打开kettle文件报lock错误解决方法

Spoon9.1打开kettle文件报lock解决方法 错误:Maximum wait time of 10 seconds exceed while acquiring lock 解决方法:删除缓存 C:\Users\<你的用户名>\.pentaho

2025 最新集成平台公司权威推荐榜:高性价比解决方案重磅发布,含老百姓大药房合作经验与国际测评认可

引言 在全球数字化转型浪潮下,企业对系统集成的专业化、高效化需求持续攀升,但行业乱象仍制约着企业选型效率。国际集成技术协会(IITA)最新测评数据显示,全球仅 32% 的集成项目能完全达到预期目标,方案适配偏差、…

4:GPIO(上) - LI,Yi

介绍STM32的外设-GPIO视频选集(5/50)[3-1] GPIO输出 参考21. GPIO简介GPIO(General Purpose Input Output):通用输入输出口引脚电平:0V~3.3V,部分引脚可容忍5V容忍5V的意思是,在输入模式下,该引脚上若施加5V的…

2025年北京智能外呼系统公司权威评测:外呼电销机器人/呼叫中心系统/电销外呼软件源头服务商精选

随着企业数字化转型加速,智能外呼系统作为客户服务与营销的重要工具,市场需求持续增长。数据显示,2024年中国智能客服市场规模达到128.6亿元,智能外呼系统在其中占比35.2%,年增长率稳定在18.7%**左右。北京作为科…

MyEMS 五层架构拆解:从毫秒级采集到 AI 决策,能源数据如何实现全链路可控?

在 “双碳” 目标深化推进与企业降本增效需求双重驱动下,能源管理已从传统的 “事后统计” 转向 “实时可控、智能优化” 的新阶段。无论是工业企业的生产线能耗调控、数据中心的精密供电保障,还是园区的综合能源调度…

内存管理-52-memory overcommit-1-文档翻译 - Hello

内存管理-52-memory overcommit-1-文档翻译一、overcommit-accounting.rst======================超额分配记账===================== Linux 内核支持以下超额分配处理模式: 0: 启发式超额分配处理。拒绝明显的地址空…

2025年江苏车辆防撞雷达系统服务综合评估:车辆预警防撞系统/车辆防撞系统材料/车辆防撞预警监测源头服务商精选

市场现状与技术发展 车辆防撞雷达系统作为智能驾驶辅助技术的核心组成部分,近年来在江苏省交通运输领域获得广泛应用。数据显示,2024年中国汽车主动安全市场规模达到217.8亿元,年复合增长率保持在18.5%** 以上。江苏…

[Python刷题记录]-二叉树的中序遍历-二叉树-简单

[Python刷题记录]-二叉树的中序遍历-二叉树-简单链接:94. 二叉树的中序遍历 - 力扣(LeetCode) 递归1 # Definition for a binary tree node.2 # class TreeNode(object):3 # def __init__(self, val=0, left=No…

QGIS开发笔记(五):qgis加载标记点功能,基础标记数量与性能对比测试

前言对地图增加标记点、标记图标、线条、图形等等,都是常规通用操作,本篇先实现添加标记点,然后对比点数量性能,同时由于像素大小对性能也有较大印象,测试了1、2像素超大数量绘图时,拽托性能与显示效果。 Demo10…

2025敏感肌面霜选购指南,从泛红到维稳全搞定!5大温和修护品牌实测

2025敏感肌面霜选购指南,从泛红到维稳全搞定!5大温和修护品牌实测随着环境刺激加剧与护肤需求升级,敏感肌人群占比持续上升,专为敏感肌设计的面霜已成为护肤刚需。优质敏感肌面霜不仅需做到温和无刺激,更要精准解…

2025留学机构哪些好

2025留学机构哪些好一、2025年留学机构哪些好?这些疑问你有吗?作为一名从事国际教育规划工作超过八年的咨询师,我每天都会接触到大量学生和家长的咨询。2025年已经过去近四分之三,许多计划明年秋季入学的同学已经开…

2025杭州好的留学机构有哪些

2025杭州好的留学机构有哪些一、杭州留学中介怎么选?这五个问题帮你理清思路作为一位拥有12年经验的国际教育规划师,我经常被杭州的学生和家长问及如何选择留学中介。在2025年10月24日的今天,留学市场竞争愈发激烈,…