Unity循环执行不同事件

发表于2018-07-31
评论0 2.1k浏览
需求:时间能够控制,循环执行不同事件,每次循环仅执行一次事件。  

问题1:用帧动画控制时,1表示最小,但速度还是很快,转问题2。  
问题2:于是想到有限状态机制,放在update下,能循环运行,但会运行多次(注意:不是循环)。  
问题3:放在start下,只能执行一次,不是循环。  
问题4:想到协程,放在update下,能循环,但是执行多次,为啥?因为延时作用,会使事件在延时过程中每一帧不断更新。  

启发:创建时间间隔,每次执行一次:  
if(Time.time-time>3){  
   Debug.Log("2222");   
   time=Time.time;                  
}  
每隔3秒,输出2222。  

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

代码如下:
if(Time.time-time>3){  
           time=Time.time;  
           switch (type)  
          {  
          case State.firstbig:  
                     Debug.Log("1111");  
                     type=State.scecondbig;  
           break;  
          case State.scecondbig:  
                    Debug.Log("2222");  
                     type=State.thirdbig;  
          break;  
          case State.thirdbig:  
                     Debug.Log("3333");  
                     type=State.firstbig;  
          break;  
          }   
      }  
来自:https://blog.csdn.net/Anzhongliu/article/details/78463647

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引