上Unity3D课最后做了两个简陋的小游戏,两个小游戏的制作基本囊括了课上所有学到的知识点,下面放出游戏演示和大概系统设计。
TowerDefence
TowerDefence是一个单机游戏,制作过程中主要用到触发器、实例化刚体、粒子系统、游戏菜单、鼠标键盘外设输入、Animation和Animator等知识点,线上试玩请到: TowerDefence试玩
系统设计
UML类图(Class Diagram)
- 对于用户功能模块,共设计如下13个类。
- 数据类TurretData:保存炮塔数据;
- 数据类Wave保存生成每波敌人的属性;
- 功能实现类:WayPoint获得敌人运动路径点;
- 功能实现类ViewerController控制相机前后左右移动以及视野的放大和缩小;
- 功能实现类Enemy实现敌人运动和死亡,以及敌人数量的更新和受到伤害;
- 功能实现类Turret实现炮塔的攻击和追踪;
- Bullet实现子弹追踪和爆炸消失;
- 功能实现类MapCube实现场景中方块上炮塔的建造、拆毁、升级和相关特效的生成以及方块的变色与恢复;
- 功能实现类EnemySpawner实现敌人的实例化生成;
- 管理类BuiltManager:管理炮塔的建造、升级面板的实现以及金钱的消耗;
- 管理类GameManager管理游戏的开始、胜利与失败;
- 管理类ButtonControler管理游戏所有按钮功能的实现与隐藏;
- 菜单类GameMenu实现场景的载入与退出。
UML活动图(Activity Diagram)
TowerDefence项目地址链接:https://pan.baidu.com/s/12oSkQrzGLw9bWoSyjBvrWQ 提取码:tuxx
OnlineShooter
OnlineShooter是一个小型多人联机射击游戏,使用Mirror组件实现联网功能,这个游戏有个很严重的问题:玩家收到子弹伤害会持续后退,但是没有限制场地范围,不过应该可以通过去掉子弹的重力解决。限制玩家最多5人。 OnlineShooter试玩
系统设计
UML用例图(User Case Diagram)
UML类图(Class Diagram)
- 对于用户功能模块,共设计如下7个类。
- 数据类Weapon:保存武器数据;
- 功能实现类BulletScript实现子弹对玩家造成伤害;
- 功能实现类PlayerScript 实现玩家生成、发送消息、切换游戏场景、受伤、切换武器、血条、拾取血包回血、拾取弹夹等功能;
- 功能实现类SceneScript 实现当前场景中文本的变化及同步显示并提示玩家是否接入服务器;
- 场景切换类Menu 实现切换到菜单场景;
- 场景切换类GameList实现切换到开始场景;
- UI管理类HUDExtension管理游戏场景中文本UI的显示;
对象与脚本、组件关系图(RelationShip Diagram)
OnlineShooter项目链接:https://pan.baidu.com/s/1pc4vxVZPpw7rSRjxSCDCOA 提取码:tuyy
疫情地球
在github上看到一个项目:用unity引擎呈现疫情大数据,该项目使用粒子系统进行数据渲染,直观地显示出各个地区的疫情分别情况,中国精确到省份,外国精确到全国(以首都为国家位置),疫情数据来源于腾讯新闻疫情实时追踪。
效果图:
在写这篇博客时,发现hexo会渲染所有在source文件夹下的内容,导致不需要被主题渲染的网页无法正确的显示,游戏试玩页面带有博客主题样式,无法正常显示,解决方法:https://blog.csdn.net/qq_33384402/article/details/107240192