unity循环执行不同事件

需求:时间能够控制,循环执行不同事件,每次循环仅执行一次事件。

问题1:用帧动画控制时,1表示最小,但速度还是很快,转问题2。

问题2:于是想到有限状态机制,放在update下,能循环运行,但会运行多次(注意 :不是循环)。

问题3:放在 start下,只能执行一次,不是循环。

问题4:想到协程,放在update下,能循环,但是执行多次,为啥?因为延时作用,会使事件在延时过程中每一帧不断更新。

启发:创建时间间隔,每次执行一次:

[csharp]  view plain  copy
  1. if(Time.time-time>3){  
  2.    Debug.Log("2222");   
  3.    time=Time.time;                  
  4. }  

每隔3秒,输出2222。

于是有限状态机制能循环执行+间隔一次执行=想要的结果,每隔3秒输出:

1111

2222

3333

1111

2222

3333

.........

[csharp]  view plain  copy
  1. if(Time.time-time>3){  
  2.            time=Time.time;  
  3.            switch (type)  
  4.           {  
  5.           case State.firstbig:  
  6.                      Debug.Log("1111");  
  7.                      type=State.scecondbig;  
  8.            break;  
  9.           case State.scecondbig:  
  10.                     Debug.Log("2222");  
  11.                      type=State.thirdbig;  
  12.           break;  
  13.           case State.thirdbig:  
  14.                      Debug.Log("3333");  
  15.                      type=State.firstbig;  
  16.           break;  
  17.           }   
  18.       }  

你可能感兴趣的:(unity3d)