3d游戏设计 Homework4

3d游戏设计Homework4


这次的作业是实现一个UFO打飞碟游戏,游戏的内容就是可以通过鼠标点击飞碟增加分数,游戏关卡分为3个round,不同round的难度不同,出现的飞碟种类也不同,可以通过FirstSenceControll自定义可编辑组件中的Upper Limit of Difficulty来设定游戏的上限。

游戏截图

这里写图片描述

代码在https://github.com/hackerpeter1/Unity_HomeWork4上。

游戏的设计结构延用了上周的MVC结构和动作分离形式,而本周而外引用了工厂模式,防止让游戏对象的instantiation和destroy影响游戏性能,通过提前创建,在工厂模式中增加free和used数组,如果用的话就放到used中去,不用的话回到free数组。至于有人提问到底instantiation/destory游戏对象ergodic/remove数组哪个性能更好,只能说一般情况下是前者更好。

然后在这次的作业中的额外作业自学自定义可编辑控件也看了一下,我们需要创建编辑器类继承Editor,然后通过c#特性来给编辑器类增加元数据,通过SerializedProperty来定义序列化变量,在SerializedProperty方法中GetProperties选择我们要绑定的属性,设置Slides滑块来手动滑动属性值。

eg:
这里写图片描述

希望下节课能够学到更多新知识。