纳金网
标题:
有关延时执行的yield,coroutine相关用法
[打印本页]
作者:
刀锋狼
时间:
2014-5-30 04:03
标题:
有关延时执行的yield,coroutine相关用法
1.yield: 声明一种特殊的return,可以传值如Waitforsecond(5.0),实现延时或某一事件发生后触发,如果有需要有依赖关系顺序执行的函数,如
private var state = 0;
function Update() {
if (state == 0) {
// do step 0
state = 1;
return;
}
if (state == 1) {
// do step 1
state = 2;
return;
}
// ...
}
可这样使用 yield
while(***e) {
// do step 0
yield; // wait for one frame
// do step 1
yield; // wait for one frame
// ...
}
可以把 yield 理解为一种挂起 ,当函数再次执行到它时不在返回而是执行其后下面的语句
2.coroutine:作为function StartCoroutine (routine : IEnumerator) 的返回值。一个函数中包含yield声明,就可以构成一个coroutine,这个函数的调用时必由StartCoroutine来进行调用,如下
function Awake(){
StartCoroutine(MyDo());
}
function MyDo(){
while (***e) {
print("first");
yield WaitForSeconds(3.0f);
print("second");
yield ;
break;
}
}
作者:
hyui
时间:
2014-5-30 05:15
Thank you for this code!
作者:
Kadina
时间:
2014-5-30 08:29
happy your sharing
作者:
wucnj
时间:
2014-5-30 13:36
感谢分享!!!
欢迎光临 纳金网 (http://wwww.narkii.com/club/)
Powered by Discuz! X2.5