Unity中延时执行yield coroutine使用方法.pdfVIP

  • 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)

1亿VIP精品文档

相关文档