简介
作用
- 延时调用
- 和其他逻辑一起协同执行
使用
- 协程使用
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
跳出协程