zoukankan      html  css  js  c++  java
  • unity如何停止不用字符串方式开启协程的方法

    通常我们知道开启协程用StartCoroutine("Method"); 停止协程用StopCoroutine("Method");

    如果我们想要终止所有的协程,可以通过StopAllCoroutines();方法来实现。

    注意:这只会终止在调用该方法的对象中(应该是指调用这个方法的类)开始的协程,对于其他的MonoBehavior类中运行的协程不起作用。

    但是如何单独停止用StartCoroutine(Method());开启的协程呢,资料上说:如果想要终止某一个特定的协程,那么你必须得在开始协程的时候将它的方法名作为字符串。

    但是我还是不妥协,如果不能停止,为什么要提供这个方法呢,所以我琢磨出一种方法来实现。

    StartCoroutine(Method());方法是有一个Coroutine类型的返回值的,我们用一个变量接收它,然后在StopCoroutine()里面把它填进去就好了。代码如下:

    复制代码
     1 using UnityEngine;
     2 using System.Collections;
     3 
     4 public class Test : MonoBehaviour
     5 {
     6     Coroutine coroutine;
     7 
     8     void Start()
     9     {
    10         coroutine = StartCoroutine(Method());
    11     }
    12 
    13     IEnumerator Method()
    14     {
    15         StopCoroutine(coroutine);
    16         Debug.Log("已经停止协程");
    17         yield return 0;
    18     }
    19 }
    复制代码
  • 相关阅读:
    监控Redis集群
    host主机监控规则
    Prometheus自身的监控告警规则
    Prometheus alerts 各种告警规则
    Elasticsearch官方文档离线访问实操指南
    Ceph 存储集群
    采用阿里云 yum的方式安装ceph
    设置HTTP请求自动跳转HTTPS
    jumpserver 2222端口的使用
    安装jumpserver 2.1.2版本遇到的坑
  • 原文地址:https://www.cnblogs.com/dsh20134584/p/7813387.html
Copyright © 2011-2022 走看看