首页 > 解决方案 > 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 方法的示例。

标签: c#unity3d

解决方案


这在 Immersive 的评论中得到了解决

协程本质上是(伪)并行运行的。你只需要同时启动它们。void DoThings() { StartCoroutine( Coroutine1(data) ); StartCoroutine( Coroutine2(data) ); }

但是,如果有人想展示替代方案或更好的方法,请随时发布。谢谢!


推荐阅读