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
