本周关键字——轮子,雷达菜单,引申需求。
这一周过的很纯粹,就是在做轮子组件,但是深刻体会到了间接而不简单的道理。
其实轮子的模型在去年就已经捏好了,而且乐高拼接的代码也写好了,本以为只要写完控制轮子驱动与转向的脚本(因为用的是Unity的Wheel Collider,所以写起来会很快),简单的组装一下很快就可以搞定这“简单”的小组件的。但是在实际开发的过程中,却发现“没那么简单”。
首先,由于轮子组件是具有功能的,因此需要须有控制代码,而这种控制是有条件的——只有被拼接到了玩家控制的载具上面,并且方向与载具一致的情况下才可以生效(Unity的Wheel Collider会强制保持与所挂接的根对象方向一致,这个之前自己的确不知道)。这样的话就需要来修改乐高拼接的代码,要让被拼接组件在被拼接的时候知晓自己与载具的相对位置与朝向关系。
修改完上述代码后,利用手头已有的成果组装成了第一版轮子组件,结果效果不理想,因为每个轮子都具有驱动与转向的功能,实际运行的时候,转弯时载具看起来像是漂移的感觉,因此又需要将轮子拆分为从动轮/驱动轮/转向轮。这里就面临着实现策略上的抉择:1)针对每一种可能的轮子种类单独编写代码并用贴图进行区分,即在菜单中显示为不同种类的轮子;2)只提供一种可配置的轮子,但是可以通过在游戏中右键菜单对轮子的功能进行配置,并辅以不同的贴图来显示轮子当前所具有的配置功能。
毫无疑问,“机智”的我肯定会选择第二种看起来很聪明的做法!但这是有代价的:轮子要具有可变的属性(修改轮子控制代码即可,Easy);需要为轮子提供右键菜单(我选择的是雷达样式的菜单,原因吗,我喜欢圆形的美感,但会提高实现的难度,A little bit hard);运行时可变的贴图(还需要额外制作贴图,唉,作为一个程序员,对美工真的提不起来精深,Normal)。
于是,在这一周里,我修改了乐高拼接代码,正在实现雷达菜单功能(谢谢Unity资源商店里各种资源,“老子花了钱的!”),还没有完成新贴图的修改与贴图的动态改变。本来计划用不到一周来完成的组件,却变成了一周完成不到一个组件的尴尬。
只希望下周我的轮子可以早点完工。
轮子组件完后的工序工作计划:
1)乐高拼接代码优化:已经拼接组件的原地旋转功能;
2)乐高拼接过程中镜头视野的自动扩展功能;
3)火炮的设计与实现。
嗯,加油 >_<
暂无关于此日志的评论。