Unity3D制作打飞碟游戏
视频链接:https://www.bilibili.com/video/av70662881/
项目地址:https://github.com/liangwj45/Unity-3D/tree/master/HW5/
程序内容要求
- 游戏有 n 个 round,每个 round 都包括 10 次 trial;
- 每个 trial 的飞碟的色彩、大小、发射位置、速度、角度、同时出现的个数都可能不同。它们由该 round 的 ruler 控制;
- 每个 trial 的飞碟有随机性,总体难度随 round 上升;
- 鼠标点中得分,得分规则按色彩、大小、速度不同计算,规则可自由设定。
游戏要求:
- 使用带缓存的工厂模式管理不同飞碟的生产与回收,该工厂必须是场景单实例的!具体实现见参考资源 Singleton 模板类
- 近可能使用前面 MVC 结构实现人机交互与游戏模型分离
游戏截图

编写程序
导演类(Director)
控制场景的切换。
1 | public class Director :System.Object { |
飞碟对象类(UFO)
主要游戏对象。
1 | public enum UFOState { Stop, Moving }; |
规则类(Rule)
规定游戏中积分与难度变化。
1 | public class Ruler { |
工厂类(UFOFactory)
工厂方法,用于 UFO 对象的基础构建。
1 | public class UFOFactory { |
游戏模型类(SSActionManager)
规定游戏状态如何进行改变。
1 | public enum SceneState { Waiting, Shooting } |
接口类(Interface)
1 | public interface ISceneController { |
场景控制类(MainSceneController)
游戏主要逻辑控制,负责游戏的开始和结束相应操作的执行。
1 | public class MainSceneController : MonoBehaviour, ISceneController |
UI 类(GameGUI)
控制界面中文字和按钮的显示,处理游戏状态改变对应 UI 的相应变化。
1 | public class GameGUI :MonoBehaviour { |