【Unity】协程(协同程序)
简介
作用
- 延时调用
- 和其他逻辑一起协同执行
使用
- 协程使用
IEnumerator
声明 - 调用协程方法一:
StartCoroutine(string 方法名)
传入方法名 - 调用协程方法二:
StartCoroutine(方法)
直接传入方法 - 结束协程方法一:
StopCoroutine(string 方法名)
传入方法名 - 结束协程方法二:
StopCoroutine(方法)
直接传入方法 方法需要声明- 注:停止方法要与开启方式一致
- 结束协程方法三:
StopAllCoroutine
直接结束全部协程,不管开启协程方法
void Start() { //方法一:开启协程 StartCoroutine("ChangeState"); //结束协程 正常结束 StopCoroutine("ChangeState"); //方法二:开启协程 StartCoroutine(ChangeState()); //结束协程(无法结束) StopCoroutine(ChangeState()); //方法二正确结束协程方法: 定义协程 IEnumerator ie = ChangeState(); //开启协程 StartCoroutine(ie); //结束协程 StartCoroutine(ie); Debug.Log("结束测试"); } //将执行的协同程序 IEnumerator ChangeState() { Debug.Log("协程开始执行"); //方法 yield return new WaitForSeconds(2); Debug.Log("协程结束执行"); }
常用方法
yield return new WaitForSeconds(Float time)
协程挂起指定时间yield return n
等待1帧 不管传入多少都是等待1帧(包括null)yield return new WaitForEndOfFrame()
等待,直到该帧结束yield break
跳出协程
本文来自博客园,作者:星空探险家,转载请注明原文链接:https://www.cnblogs.com/PuppetLazy/p/17840922.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了