码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-05-09 20:40:34      阅读:661      评论:0      收藏:0      [点我收藏+]

标签:方式   return   字符   对象   bsp   实现   停止   tor   nes   

通常我们知道开启协程用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         StartCoroutine("Method");
10         coroutine = StartCoroutine(Method());
11     }
12 
13     IEnumerator Method() {
14         yield return 0;
15         StopCoroutine(coroutine);
16         Debug.Log("已经停止协程");
17     }
18 }

 

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

标签:方式   return   字符   对象   bsp   实现   停止   tor   nes   

原文地址:http://www.cnblogs.com/AaronBlogs/p/6832323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!