原文摘自

Unity协程Coroutine使用总结和一些坑

MonoBehavior关于协程提供了下面几个接口:

可以使用函数或者函数名字符串来启动一个协程,同时可以用函数,函数名字符串,和Coroutine对象来终止一个协程。

使用上有这几种问题:

1,使用 Coroutine StartCoroutine(IEnumerator routine)来启动一些协程,能否使用StopCoroutine(string methodName) 和StopCoroutine(Coroutine routine);StopCoroutine(IEnumerator routine)来结束对应的协程:

答案:StopCoroutine(string methodName)不能

能否用StopCoroutine(IEnumerator routine)来终止对应的协程?

需要使用IEnumerator tempEnum把协程方法保存下来,然后调用来StopCoroutine(tempEnum)终止

2,使用StartCoroutine(string methodName)来启动的协程,能否使用StopCoroutine(Coroutine routine)和StopCoroutine(IEnumerator routine)来结束对应的协程:

答案:不能

StopCoroutine(Coroutine routine)肯定不行了,没有Coroutine对象

3, Coroutine StartCoroutine(IEnumerator routine)可以将一个非MonoBehavior对象里的IEnumerator传入,在当前Mono对象里管理启动这个协程。

但是StartCoroutine(string methodName)不能将非MonoBeahvior对象里的函数名串作为参数来启动协程,因为StartCoroutine(string methodName)是在当前Mono对象下匹配对应的函数名字

4,Coroutine StartCoroutine(IEnumerator routine)来启动多个协程 Coroutine1和Coroutine2,分别使用StopCoroutine(Coroutine )来终止对应的协程

5,调用StartCoroutine(string methodName)多次来启动多个协程,使用StopCoroutine(string methodName) 一次可以终止所有的该协程函数

虽然unity文档上是这么说的:

但实际上会把所有叫做methodName的协程都取消掉,源码里也是这么做的

源码不便分享,需要请私信

Unity协程Coroutine使用总结和一些坑的更多相关文章

  1. Unity协程(Coroutine)管理类——TaskManager工具分享

    博客分类: Unity3D插件学习,工具分享 源码分析   Unity协程(Coroutine)管理类——TaskManager工具分享 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处 ...

  2. unity协程coroutine浅析

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.序言 在unity的游戏开发中,对于异步操作,有一个避免不了的操作: 协程,以前一直理解的懵懵懂懂,最近认真充电了一下 ...

  3. Unity 协程(Coroutine)原理与用法详解

    前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式 为啥在 ...

  4. Unity 协程Coroutine综合测试

    using UnityEngine; using System.Collections; using System.Text; public class rotCube : MonoBehaviour ...

  5. Unity协程(Coroutine)原理深入剖析

    Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 其实协程并没有那么复杂,网上很多地方都说是多 ...

  6. Unity协程(Coroutine)原理深入剖析(转载)

    记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是怎么样的,只是知道函数的返回值是IEnumerator类型,函数中使用yield r ...

  7. Unity协程(Coroutine)原理深入剖析再续

    Unity协程(Coroutine)原理深入剖析再续 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 前面已经介绍过对协程(Coroutine ...

  8. 【转】Unity协程(Coroutine)原理深入剖析

    Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网 ...

  9. Unity怎样在Editor下运行协程(coroutine)

    在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...

随机推荐

  1. ShellCode初体验

    写在前面的话: ShellCode是一门艺术,就像围棋手门追求的“神之一手”,今天就来初探一下这让人疯狂的艺术: 零.代码0 相信手写opcode,目前很少有人干了,其实,也确实已经没有这个必要了,毕 ...

  2. windows Server 2008R2 FTP服务器搭建详细图解

    一.安装ftp服务 1.打开服务器管理器,如图: 2.右键点击角色,如图: 3.点击添加角色,会出现添加角色向导对话框,如图: 4.点击下一步,选择要添加的“web服务器(IIS)” ‘’ 5.点击下 ...

  3. .Net Core Api 跨域配置

    .Net Core 和Asp.Net 不同,不需要再去引用其他的跨域组件.创建项目时,就有了. 让接口实现跨域,需要配置两个地方. 一.Startup.cs 这里需要配置两个地方 public voi ...

  4. 【Ansible 文档】【译文】主机清单文件

    Inventory 主机清单文件 Ansible 可以对你的基础设施中多个主机系统同时进行操作.通过选择在Ansible的inventory列出的一部分主机来实现.inventory默认保存在/etc ...

  5. Python接口自动化--SSL 3

    官方文档参考地址: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings 针对SSL Warnings,u ...

  6. MySql详解(二)

    MySql的安装和使用安装过程可以自行百度,非常简单,一直下一步就行,这里省略. 启动和停止MySql服务:• 方式一:通过计算机管理方式右击计算机—管理—服务—启动或停止MySQL服务• 方式二:通 ...

  7. win10系统上Python和pycharm的安装及配置

    1.https://www.python.org/downloads/windows/进入官网下载需要的Python安装包(以2.7版本为例) 2.http://www.jetbrains.com/p ...

  8. Oracle_spatial的常见错误与注意事项

    常见的错误 1.ORA-13226:没有空间索引接口将不被支持 当使用一个空间操作符时,如果没有使用空间索引导致该操作符不能被完成将会返回该错误.这可能会发生在当你使用的列上没有空间索引.或者优化器没 ...

  9. python第三十七课——模块

    3.模块(m) 概念:在python中.py结尾的文件,我们就称为模块,可以将类.函数.属性...等内容定义在模块中 分类: 1).标准库模块:安装完python环境就有的模块,这些模块都是最常用的模 ...

  10. k-center问题-学习

    k-center问题: In graph theory, the metric k-center or metric facility location problem is a combinator ...