赞
踩
基础写法(以打印为例):
void Update() { if (Input.GetKeyDown(KeyCode.T)) { // 字面意思,开启协程 StartCoroutine(Test01()); } } IEnumerator Test01() { for (int i = 0; i < 10; i++) { Debug.Log(i); // 等待一秒后,执行之后的代码,作用类似于延时函数 yield return new WaitForSeconds(1); } }
StartCoroutine
的意思是开启协程,IEnumerator
的意思就是声明一个协程;开启协程通常不占太多资源,这里可以多按几次,那么你将开启多个Test01
协程yield
主要形式为://计算表达式并以枚举数对象值形式返回,expression 必须是可以隐式转换为迭代器的yield类型
yield return <expression>;
// 结束迭代,这里用于在协程中内部中断协程
yield break;
yeild return
:把程序控制权交回调用者并保留本地状态,调用者拿到返回值后继续往后执行yeild break
:告诉程序当前序列已经结束,相当于正常代码块的return
StartCoroutine(func());
StartCoroutine("func Name");
void Start()
{
IEnumerator coroutine = Test01(5);
StartCoroutine(coroutine); //开启协程
}
IEnumerator Test01(int a)//协程
{
//等待帧画面渲染结束
yield return new WaitForEndOfFrame();
a=10;
}
StopCoroutine() / StopAllCoroutines()
,中止协程yield break
内部中止void Start()
{
IEnumerator coroutine = Test01(5);
StartCoroutine(coroutine);
StopCoroutine(coroutine); //关闭协程
}
IEnumerator Test01(int a)//协程
{
//等待帧画面渲染结束
yield return new WaitForEndOfFrame();
a=10;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。