为什么需要协程unity线程无法访问unity相关对象的内容多线程用来做复杂的计算结果。因为主线程的存在导致副线程不能访问unity中相关对象但协程可以访问批量创建时减少卡顿感。协同程序它是假的多线程 它不是多线程它的主要作用 将代码分时执行是把可能会让主线程卡顿的耗时逻辑分时的分布执行继承MonoBehavior的类 都可以开启协程函数第一步 申明协程函数协程函数2个关键点1-1返回值为IEnumerator类型及其子类1-2函数中通过yield return 返回值 进行返回协同程序函数 返回值 必须是 IEnumerator或者继承它的类型IEnumerator MyCoroutine (int i, string str) { print(i); //协程函数当中必须使用 yield return 进行 yield return new WaitForSeconds(i);//等待时间 该句之前的内容执行后后面的内容要等5秒后执行 print(str); yield return new WaitForSeconds(i);//时间分割写几个就相当于把代码分成了几部分 while (true) { print(5); yield return new WaitForSeconds(5); //写死循环 分布 } }协程函数的开启和关闭协程函数 是不能这样直接去执行的这样执行没有任何效果MyCoroutine(1,123);开启方式1IEnumerator ie MyCoroutine(1, 123); StartCoroutine(ie);开启方式2StartCoroutine(MyCoroutine(1, 123));关闭Coroutine c1 StartCoroutine(MyCoroutine(1, 123)); Coroutine c2 StartCoroutine(MyCoroutine(1, 123)); Coroutine c3 StartCoroutine(MyCoroutine(1, 123));协程的关闭 关闭所有StopAllCoroutines();关闭指定协程StopCoroutine(c1);