Unity Coroutine 协程

这篇具有很好参考价值的文章主要介绍了Unity Coroutine 协程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

Unity Coroutine 是一种在 Unity 引擎中实现异步编程的技术,它可以让你在多个帧中分段执行一个函数,而不是一次性地执行完毕。Coroutine 可以使用 yield 语句来暂停和恢复执行,从而实现一些复杂的逻辑和效果,如时间延迟、循环动画、网络请求等。Coroutine 是基于 IEnumerator 接口的,它必须包含至少一个 yield 语句,并返回一个 IEnumerator 对象。你可以使用 StartCoroutine 函数来启动一个 Coroutine,使用 StopCoroutine 函数来停止一个 Coroutine。

协程(Coroutine)在我们游戏开发中有着比较重要的地位.

协程全名协同程序, 和线程不同, 协程是依附于主线程执行的, 相当于在主线程上夺取了一定的执行时间片.

也可以理解为在主线程的调用之外开辟了一个单独的调用栈, 并在协程消亡之前能保存内部信息和与其它协程共享公用信息.

协程实质是运行在主线程, 代码仍然是同步执行, 只是在某些点被挂起然后重新进行主线程其它代码的执行, 之后重新进入协程时可以从离开点继续执行. 这点和递归有些类似.

协程的核心概念有挂起和恢复, 挂起即执行到某个位置后停止, 直到被外部恢复.
————————————————
版权声明:本文为CSDN博主「拂面清风三点水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woodengm/article/details/119255321

 例子:

 

void Start()
{
	var cor = StartCoroutine(Example());
	StopCoroutine(cor);
}

IEnumerator Example()
{
    print(Time.time);
    yield return new WaitForSeconds(5);
    print(Time.time);
}

在 Unity 中怎么创建和使用协程。协程是一种可以在多个帧中分段执行的函数,它可以使用 yield 语句来暂停和恢复执行。在 Unity 中,你可以使用 StartCoroutine 函数来启动一个协程,使用 StopCoroutine 函数来停止一个协程。你的代码中有一个协程函数 Example 和一个普通函数 Start,我来逐行解释它们的作用:

  • void Start():这是一个 Unity 的内置函数,它会在脚本实例被加载时调用一次,通常用于初始化一些变量或执行一些操作。
  • var cor = StartCoroutine(Example()):这一行会启动 Example 协程,并把返回的 Coroutine 对象赋值给 cor 变量。Coroutine 对象是一个用于控制协程的对象,你可以用它来停止或查询协程的状态。
  • StopCoroutine(cor):这一行会停止 cor 变量对应的协程,也就是 Example 协程。这意味着 Example 协程不会继续执行下去了。
  • IEnumerator Example():这是一个协程函数,它的返回类型是 IEnumerator,它必须包含至少一个 yield 语句。
  • print(Time.time):这一行会打印当前的游戏时间到控制台,Time.time 是一个 Unity 提供的变量,它表示从游戏开始到现在经过的秒数。
  • yield return new WaitForSeconds(5):这一行是一个 yield 语句,它会让协程暂停执行,并等待 5 秒后再恢复执行。WaitForSeconds 是一个 Unity 提供的对象,它可以用于实现时间延迟的效果。
  • print(Time.time):这一行会再次打印当前的游戏时间到控制台。

如果你运行这段代码,你会发现控制台只打印了一次游戏时间,而不是两次。这是因为你在 Start 函数中启动了 Example 协程后,马上就停止了它。所以 Example 协程只执行了第一行 print 语句,然后就被终止了。如果你想让 Example 协程完整地执行完毕,你需要把 Start 函数中的 StopCoroutine(cor) 这一行注释掉或删除掉。这样,Example 协程就会在第一次打印游戏时间后等待 5 秒,然后再打印第二次游戏时间。文章来源地址https://www.toymoban.com/news/detail-618687.html

到了这里,关于Unity Coroutine 协程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SuperMap Hi-Fi 3D SDK for Unity制作游戏引擎材质

    kele     在交通,电力,规划等行业中,有的对象常常具有很强的质感,比如金属质感的 钢轨,电力塔;陶瓷材质的绝缘子;玻璃材质的建筑幕墙等,但常规方式的表现效果 往往差强人意。     游戏引擎(Unity3D)中已有丰富的材质资源库,比如玻璃,金属等材质,这

    2024年02月09日
    浏览(87)
  • 【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

    📢博客主页:肩匣与橘 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 肩匣与橘 编写,首发于 CSDN 🙉 📢生活依旧是美好而又温柔的,你也是✨  基于Unity3D引擎的冒险游戏的设计与实现 📢前言 摘要 Abstract 1 绪论 1.1 选题背景 1.2 研究目的及意义 2 开发工具

    2024年02月05日
    浏览(66)
  • 从零开始的种田生活-Unity游戏开发

    大家好,这里是暴躁老哥酒九。最近了我们的童年记忆《摩尔庄园》在手机上面复活了,不知道大家有没有沉迷于种菜无法自拔呢(反正我是累了)。 种田才是这个游戏本质吧~ 在《摩尔庄园》中了为我们玩家提供了很多的玩法比如:钓鱼,烹饪,开餐厅,庄园和玩家自身装

    2024年02月02日
    浏览(46)
  • Unity、UE、Cocos游戏开发引擎的区别

    Unity、Unreal Engine(UE)和Cocos引擎是三个常用的游戏开发引擎,它们在功能和特性上有一些区别。以下是它们之间的主要区别: 编程语言:Unity使用C#作为主要的编程语言,开发者可以使用C#脚本进行游戏逻辑编写。Unreal Engine主要使用C++作为编程语言,但也支持蓝图系统,允许

    2024年02月22日
    浏览(66)
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发,在最开始介绍场景这个概念的时候就已经提及,这个场景可以是一张地图,或者是一个对战房间等等,所以显然这个场景可以有多个,并且可以从一个场景切换到另外一个场景,那么在Unity中如何进行场景切换,以及

    2024年02月04日
    浏览(47)
  • 【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者进阶 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能

    2024年02月09日
    浏览(69)
  • 【赠书第11期】Unity 3D游戏开发

    文章目录 前言 1 Unity 3D简介 2 Unity 3D基本概念 2.1 场景(Scene) 2.2 游戏对象(Game Object) 2.3 组件(Component) 2.4 资源(Asset) 3 Unity 3D重要组件 3.1 物理引擎 3.2 动画系统 3.3 粒子系统 3.4 网络功能 4. 常用技术和工具 4.1 编程语言 4.2 物理材质 4.3 光照和阴影 5 总结 6 推荐书籍 7 粉

    2024年02月04日
    浏览(55)
  • Unity读书系列《Unity3D游戏开发》——脚本(一)

    脚本在Unity的重要程度不用多说,她是大部分软件的核心组件。 我们将在此篇文章学习脚本模版及其拓展、脚本的生命周期、脚本的执行顺序、脚本序列化,下一篇为脚本编译与调试。 如下图我们可以在Project视图右键进行脚本创建,除了C#脚本,还有两类脚本;Testing用来做

    2024年04月28日
    浏览(87)
  • Unity读书系列《Unity3D游戏开发》——基础知识

    本篇对应标题书籍的第一章基础知识,也就是unity的基本常识和工作流的说明。 Unity目前用于创建2D和3D游戏、模拟应用程序、可视化体验以及其他虚拟现实(VR)和增强现实(AR)应用,游戏工业两开花。 Unity初版是在2005年发布的,开始时用unity3.X、4.X这样的名称进行版本更新

    2024年01月18日
    浏览(90)
  • Unity 3D游戏开发+脚本编程完整指南:制作第一个游戏:3D滚球跑酷

    教程相关资源 Unity 3D游戏开发+脚本编程完整指南(工程文件+PPT).zip 本节利用前面的知识来实现第一个较为完整的小游戏,如 图 1-21 所示。 图1-21 3D滚球跑酷游戏完成效果 1. 功能点分析 游戏中的小球会以恒定速度向前移动,而玩家控制着小球 左右移动来躲避跑道中的黄色障

    2024年02月21日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包