- 最后登录
- 2016-10-1
- 注册时间
- 2013-12-28
- 阅读权限
- 90
- 积分
- 5805
- 纳金币
- 2954
- 精华
- 3
|
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;
}
}
|
|