我必须在Unity3d场景中显示完整的24小时周期。 不同类型的任务将在不同的时间执行。不同的代码执行不同的时间事件
假设
- 下午2点我必须移动车,
- 下午6点的飞机将在下午7点07分在机场
- 的土地,我要打开市场的建筑 门
- 等不同的任务/作品在不同的时间执行。
现在,我有一些基本的动画,如汽车,飞机和门等。现在我很迷惑,根据时间如何播放和停止我的动画。而且时间也可以用 用GUI手动更改。如果当前下午6点(动画工作),则用户可以切换到上午8点以查看上午8点的动画。用户还可以加快计时,以便在一分钟或一小时内查看完整的小时数。
我可以使用的if/else在更新活动,但我想这不是正确的方式做,将是很难,如果我需要显示在不同时间的作品 的显著数持续时间(这意味着大量的if/else语句)。就像下面那样
void Update(){
if(time =1){
//logic
}
if(time =2){
//logic
}
if(time =3){
//logic
}
...//so on, tedious way
...//and also not possible if time require between the hours, suppose 06:06pm
}
怎么办?如何处理这个?
你为什么这么说:'如果陈述是最不专业的'? – rhughes
,因为我认为我可以在这个函数上弱引用[OOP Message Passing](https://en.wikipedia.org/wiki/Object-oriented_programming#Dynamic_dispatch.2Fmessage_passing) - “这是对象的责任,而不是外部代码,以'按需'选择程序代码以响应方法调用而运行/执行“。在你的情况下,时间管理器类是调用你的方法的“外部代码”。有非硬编码的方法调用来保持重命名的自由,添加和删除要调用的方法是很好的。另外,如果语句总是导致巨大的代码。 –
我认为他的意思是在这种情况下,你最终得到24条陈述。他也可以提到会导致相同的开关。使用委托可以不超过5行。 – Everts