- 1
- 0
- 约3.74千字
- 约 6页
- 2026-02-07 发布于北京
- 举报
有关延时执行的yield\coroutine相关用法
发布于2013年07月21日由U3d/Unity3D/插件/被围观31次
1.yield:一种特殊的return,可以传值如Waitforsecond(5.0),实现延时或某一
发生后触发。如果有需要有依赖关系顺序执行的函数,如:
01私有变量状态0;
02
03函数更新(){
04
05如果(状态0){
06
07//执行步骤0
08
09状态1;
10
11返回;
12
13}
14
15如果(状态1){
16
17//执行步骤1
18
19状态2;
20
21返回;
22
23}
24
25//...
26
27}
28
29可以这样使用yield
30
31while(true){
32
33//执行步骤0
34
35yield;//等待一帧
36
37//执行步骤1
38
39yield;//等待一帧
40
41//...
42
43}
有关延时执行的yield\coroutine相关用法
Postedon2013年07月21日byU3d/Unity3D/插件/被围观31次
1.yield:一种特殊的return,可以传值如Waitforsecond(5.0),实现延时或某
一发生后触发。如果有需要有依赖关系顺序执行的函数,如:
01privatevarstate0;
02
03functionUpdate(){
04
05if(state0){
06
07//dostep0
08
09state1;
10
11return;
12
13}
14
15if(state1){
16
17//dostep1
18
19state2;
20
21return;
22
23}
24
25//...
26
27}
28
29可这样使用yield
30
31while(true){
32
33//dostep0
34
35yield;//waitforoneframe
36
37//dostep1
38
39yield;//waitforoneframe
40
41//...
42
43}
44
45;
可以把yield理解为一种挂起,当函数执行到它时不再返回而是执行下一个函数的
语一旦收到yield后定义的函数为true的消息,则执行yield返回并进行下面的代
句,
码。
2.coroutine:作为functionStartCoroutine(routine:IEnumerator)的返回值。
一个函数中包含yield,就可以构成一个coroutine,这个函数的调用必须由
StartCoroutine来进行调用,如下:
01函数Awake(){
02
03StartCoroutine(MyDo());
04
05}
06
07functionMyDo(){
08
09while(true){
10
11print(first);
12
13yieldWaitForSeconds
原创力文档

文档评论(0)