unity如何停止不用字符串方式开启协程的方法

Unity协程控制
本文介绍了一种在Unity中控制协程的方法,通过使用Coroutine类型的返回值来实现对特定协程的启动与停止。这种方法适用于需要精确控制协程执行场景。

通常我们知道开启协程用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 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值