Unity 协程之三种分析解决StopCorotine终止不了

 时间:2024-10-11 23:14:05

1、打开 Unity,新建一个工程,具体如下图

Unity 协程之三种分析解决StopCorotine终止不了

2、在工程中,新建一个脚本,然后双击或者右键打开脚本,进行编辑,具体如下图

Unity 协程之三种分析解决StopCorotine终止不了
Unity 协程之三种分析解决StopCorotine终止不了

3、首先使用常用的方法,StartCoroutine(Func()),StopCoroutine(Func())的方法开启和停止一个协程,具体代码如下

Unity 协程之三种分析解决StopCorotine终止不了

4、脚本编译正确后,回到Unity界面,在场景中添加一个 GameObject ,把脚本挂载上去,运行场景,在 2 秒打印后,停止协程按钮,发现 5 秒过后,依然有打印,所以这种传统方法停止协程是不行,具体如下图

Unity 协程之三种分析解决StopCorotine终止不了
Unity 协程之三种分析解决StopCorotine终止不了

5、回到代码,编写第二种开启,停止协程的方法,StartCoroutine(“FuncName”),StopCoroutine("FuncName"),然后脚本编译正确后,回到Unity界面,运行场景,在 2 秒打印后,停止协程按钮,发现 5 秒过后,没有了打印,所以这种方法停止协程是可行的,具体如下图

Unity 协程之三种分析解决StopCorotine终止不了
Unity 协程之三种分析解决StopCorotine终止不了

6、回到代码,编写第三种开启,停止鲩乎吃赳协程的方法,IEnumerator wrapFunc,包装一下协程函数,StartCoroutin髫潋啜缅e(wrapFunc),StopCoroutine(wrapFunc),然后脚本编译正确后,回到Unity界面,运行场景,在 2 秒打印后,停止协程按钮,发现 5 秒过后,没有了打印,所以这种方法停止协程是可行的,具体如下图

Unity 协程之三种分析解决StopCorotine终止不了
Unity 协程之三种分析解决StopCorotine终止不了

7、StopCoroutineTest 脚本的具体代码如下:using Sy衡痕贤伎stem.Collections;using System.Co造婷用痃llections.Generic;using UnityEngine;public class StopCoroutineTest : MonoBehaviour { IEnumerator wrapTest; // Use this for initialization void Start () { wrapTest = Test(); //StartCoroutine(Test()); //StartCoroutine("Test"); StartCoroutine(wrapTest); } // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.Space)) { //StopCoroutine(Test()); //StopCoroutine("Test"); StopCoroutine(wrapTest); Debug.Log("StopCoroutine(wrapTest)"); } } IEnumerator Test() { yield return new WaitForSeconds(2.0f); Debug.Log("2.0f Print"); yield return new WaitForSeconds(5.0f); Debug.Log("5.0f Print"); }}

  • eclipse如何在某一行添加一个标记
  • Photoshop如何调出人物图片的青调天空色
  • Safari显示无法打开页面怎么办
  • 牛奶不能和什么食物同食?
  • 炫舞天外飞仙怎么弄
  • 热门搜索
    安全小报手抄报图片 数学手抄报资料大全 教师节手抄报内容大全 关于英语手抄报 放飞科技梦想手抄报 关于战争的手抄报 关于电脑的手抄报 关于爱国卫生的手抄报 关于爱读书的手抄报 节约水资源手抄报