当前位置: 首页 > 编程笔记 >

unity3d 结束协程

姚建树
2023-03-14
本文向大家介绍unity3d 结束协程,包括了unity3d 结束协程的使用技巧和注意事项,需要的朋友参考一下

示例

通常,您将协程设计为在达到某些目标时自然终止。

IEnumerator TickFiveSeconds()
{
    var wait = new WaitForSeconds(1f);
    int counter = 1;
    while(counter < 5)
    {
        Debug.Log("Tick");
        counter++;
        yield return wait;
    }
    Debug.Log("I am done ticking");
}

要从协程“内部”阻止协程,您不能像在普通功能中早退一样简单地“返回”。而是使用yield break。

IEnumerator ShowExplosions()
{
    ... show basic explosions
    if(player.xp < 100) yield break;
    ... show fancy explosions
}

您还可以强制脚本启动的所有协程在完成之前停止。

void OnDisable()
{
    // 停止所有正在运行的协程
    StopAllCoroutines();
}

从调用方停止特定协程的方法因启动方式而异。

如果您通过字符串名称启动了协程:

StartCoroutine("YourAnimation");

那么您可以通过使用相同的字符串名称调用StopCoroutine来停止它:

StopCoroutine("YourAnimation");

或者,你可以保持一个参考或者在IEnumerator由协同程序方法,返回将Coroutine被返回的对象StartCoroutine,并调用StopCoroutine无论是那些对:

public class SomeComponent : MonoBehaviour 
{
    Coroutine routine;

    void Start () {
        routine = StartCoroutine(YourAnimation());
    }

    void Update () {
        // 稍后,响应一些输入...
        StopCoroutine(routine);
    }

    IEnumerator YourAnimation () { /* ... */ }
}
           

 类似资料:
  • 本文向大家介绍unity3d 协程,包括了unity3d 协程的使用技巧和注意事项,需要的朋友参考一下 示例 首先,必须了解,游戏引擎(例如Unity)在“基于框架”的范例上工作。 在每一帧中执行代码。 其中包括Unity自己的代码以及您的代码。 在考虑框架时,一定要了解,绝对不能保证框架何时发生。他们不会定期跳动。帧之间的间隙可以是例如0.02632,然后是0.021167,然后是0.02977

  • 问题内容: 当前,我有一个效率低下的同步生成器,该生成器按顺序发出许多HTTP请求并产生结果。我想使用请求并使其并行化,从而加快此生成器的速度,但我想将其保留为普通生成器(而不是PEP 525异步生成器 ),以便不需要调用它的非异步代码被修改。如何创建这样的生成器? 问题答案: ,目前几乎没有文献记录,它接受一个协程或期货的迭代,并按输入期货的完成顺序返回一个迭代的期货。 通常 ,您可以从函数内部

  • 本文向大家介绍unity3d 可以作为协程的MonoBehaviour方法,包括了unity3d 可以作为协程的MonoBehaviour方法的使用技巧和注意事项,需要的朋友参考一下 示例 可以将三种MonoBehaviour方法制成协程。 Start() OnBecameVisible() OnLevelWasLoaded() 例如,这可用于创建仅在摄像机可见对象时执行的脚本。        

  • 完结 感谢你一路支持,在我开始时完全没有想到这个系列会这么长,会花这么多时间完成,但是创建这个系列的过程使我非常享受,也希望你喜欢它. 既然我已经完成了,我会进一步考虑将其转化为PDF格式.但是,不保证. 最后,我想总结一些帮助你继续学习 Twisted 的建议. 进一步阅读 首先,我建议阅读Twisted的 在线文档. 虽然它备受指责,但我觉得这总比饱受赞誉要好. 如果你希望使用Twisted进

  • Unity3D 是一个跨平台的浏览器/移动游戏软件框架。 Unity3D引擎采用了和大型、专业的游戏开发引擎相同的架构方式和开发方式实现Web3D,对于Web3D行业来说,是一次大的飞跃,游戏是VR行业 的最高端,呵呵,但是现在都已经平民化了,甚至过春节在山区也能碰见搞VR的老乡,因为会用3Dmax或者VRP也算VR了,呵呵,但是Unity3D的 出现和大量应用将把Web3D拉到Game的快车道上

  • 到这里,虽然本书结束了,但对于 Python 的学习和实践还远远没结束,后面我也会持续更新本书。虽然 Python 的语法相比 C++ 等语言比较简洁,但想熟练运用,仍需在实际的项目中多多实践,而不只是停留在简单的概念学习中。 这里主要推荐 Python 相关的一些学习资源,同时也列出本书的主要参考资料。 资源推荐 参考资料