Unity循环执行不同事件
发表于2018-07-31
需求:时间能够控制,循环执行不同事件,每次循环仅执行一次事件。
问题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