c# - Unity - 如何同时运行 2 个不同的 IEnumerator 方法?
问题描述
假设您有一个 IEnumerator 方法,它使用 time.deltatime 缓慢降低 hp 条,然后另一个 IEnumerator 方法降低包含当前 hp 数的 hp 文本,这样您就有了一个很好的 bar 和健康数的动画效果。
但是当你调用它们时做这样的事情,它只会一个一个地运行它:
//updating the hp stat and UI Text
yield return UpdateHP();
//Updating the HP Bar gameobject using transform.localScale.x
yield return UpdateHPBar();
我不是 IEnumerator 方法/协程方面的专家,但有什么办法可以告诉它同时运行两个 IEnumerator 方法?将不胜感激任何帮助谢谢。
也将欣赏一些有关如何同时运行两个 IEnumerator 方法的示例。
解决方案
这在 Immersive 的评论中得到了解决
协程本质上是(伪)并行运行的。你只需要同时启动它们。
void DoThings() { StartCoroutine( Coroutine1(data) ); StartCoroutine( Coroutine2(data) ); }
但是,如果有人想展示替代方案或更好的方法,请随时发布。谢谢!
推荐阅读
- c++ - Trie 数据结构:如何在不覆盖递归函数的情况下存储单词?
- three.js - 包含环的 SVG 的 Three.js ExtrudeGeometry 问题
- reactjs - 我在安装 React 时遇到“npm err ECONNRESET”错误,如何解决?
- javascript - 无法将反应自定义挂钩转换为上下文
- java - 登录后如何关闭谷歌登录窗口 - android应用程序
- c++ - 一个基本的 C++ 任务
- flutter - 如何将 Facebook 社交插件用于 Flutter 应用程序?
- cocoapods - 同一根目录下的多个私有回购规范
- python - cv2图像无意重叠
- kibana - 日期间隔可视化 Kibana