
https://play.unity.com/mg/other/piratebomb
游戏试玩链接:
https://play.unity.com/en/games/45e472fc-4879-4d47-b014-eaee72fa2e74/5rw355ux54k45by5
游戏开发技术
- 1.UGUI
主界面主要由Title、New Game、Continue、Quit四个Button构成,其中Continue的按键涉及游戏的存档与读档,通过脚本实现对玩家血量和UI控件变量的保存(PlayerPrefs)。
进入游戏关卡后,有Pause按钮可以暂停关卡,暂停的面板有四个按钮,分别可以继续,重玩,调节背景音乐的大小,退出游戏。
玩家死亡时,会弹出Game Over的面板,如果在安卓平台上可以通过观看Unity提供的广告来复活。

- 2.Unity 广告接入
利用官方的Advertisement package,在Dashboard 网页端创建项目准备工作。Unity 编辑器中启动 Service 并连接到项目。代码控制播放广告后使玩家血量完全恢复。

- 3.FSM 状态机
用抽象类继承创建2个敌人AI状态:Patrol State/Attack State,当敌人处于Patrol State时,敌人会在两个巡逻点之间走动;而当敌人处于Attack State时,即玩家在敌人的触发器范围内,敌人会追击玩家,直到玩家死亡。

- 4.动画状态机
在 Animator 窗口当中,分别使用多个Layer 来控制管理多种动画状态。敌人Base Layer下有跑动和静止两种动画,而在追击玩家时会进入Attack Layer,然后根据情况在普通攻击和特殊攻击中切换,在被玩家击败后会进入Dead Layer中,根据敌人血量的设置来判断播放受伤或者死亡的动画。

- 5.URP(通用渲染管线)
通过URP来渲染环境的光照,比如窗户的自由光、蜡烛的点光源。


- 6.Shader Graph(水面效果)
使用梯度噪声混合时间变量,使其随游戏中时间波纹进行变化,输出到一般的噪声中,Noise节点辅助产生扭曲波纹状效果,并通过对Tilling And Offset中y轴的偏移量取-1使映射画面翻转。并改变color输出,最后生成水面波纹效果如下图。


- 7. Tilemap (瓦片地图)
利用Rule Tile处理多种背景的素材,如墙壁、平台,建立起规则瓦片后,在Tile Palette可以快速拖拽规则瓦片,来构成游戏场景。


游戏机制:
玩家可以使用WASD或者虚拟摇杆操控移动,使用键盘按键J或者虚拟按钮进行释放炸弹,炸弹会在一定范围内爆炸,并且可以点燃被敌人熄灭的炸弹。目前敌人共有5种,并且分别有其特殊能力。
- 黄瓜怪:可以吹灭炸弹。
- 鲸鱼:可以吞掉炸弹,并且吞掉的炸弹会使其体型变大,体型上限为原大小的两倍。
- 大块头:可以拾取炸弹,并把炸弹向斜上方丢出。
- 秃顶海盗(Boss):可以用脚将炸弹踢走。
- 船长(Boss):遇到炸弹时,会向反方向逃跑,速度为原来的两倍。
目前一共有4个关卡,一个新手关,两个Boss关,有背景音乐,游戏通关流程约10分钟。