基于Unity3D的《孤胆枪手》游戏

游戏分为三大关卡,每个关卡都由自己的控制器控制,实现关卡分离和关卡连接。其余游戏主体部分分别形成了玩家控制系统,敌人控制系统和摄像机控制系统,每个控制器和控制系统相互配合,形成了整个游戏的功能架构。

1573614307(1).jpg

游戏主角功能

游戏主角是一个手拿冲锋枪的勇士,具有一定的生命值,主要功能有移动,攻击等。玩家可以通过电脑键盘的WASD四个按键来控制主角往各个方向移动。当玩家按住鼠标左键时,主角会拿枪射击。在游戏中,玩家目标是将出现的所有敌人消灭,获取最终胜利。

主角操控系统

角操控系统主要功能是通过动画系统来实现的。主角需要添加动画组件,在Animator组件中添加骨骼和制作好的Controller(即:PlayerAnimator主角动画控制器)。在动画控制器中,聚合着主角多种动画状态,通过编写脚本代码,分别调用主角不同的动画状态实现移动。

1573614422(1).jpg

1573614438(1).jpg

主角健康判断

游戏主角健康判断通过HPuiScript类来管理。初始健康值设定为100,即血量。在游戏中角色的所有行为都依托血量的支撑。如果血量为0,那么角色死亡且所有功能都将失效。HPuiScript类负责控制角色处于健康状态和死亡状态时,角色的一系列行为功能以及游戏场景对应的变化。如果主角死亡,那么对应的角色的所有操作都将失效。

UI系统实现

UI系统负责控制游戏的所有UI显示。当玩家开始游戏后,首先进入到开始界面。在该界面中有开始游戏按钮,当玩家点击开始游戏按钮后,场景跳转,玩家顺利进入游戏场景。在游戏场景中有玩家血量显示,玩家受到僵尸攻击时,hp血量UI图片时刻同步玩家血量信息。当玩家死亡时,UI系统显示失败界面UI;当玩家取得最终胜利时,UI系统开启胜利界面UIUI系统的存在为游戏场景增添了不少视觉效果,大大提高了玩家的游戏体验。

1573614487(1).jpg

1573614506(1).jpg

1573614517(1).jpg

关卡系统

1573614536(1).jpg

敌人追击功能

敌人追踪功能在游戏中很重要,同时也是本游戏中的技术难点。在游戏中主角的位置受到玩家控制会不断发生变化,敌人要时刻追踪玩家,就需要时刻判断玩家所处的位置。当玩家位置发生改变时,需要重新给敌人设置追踪目标点。敌人追踪功能需要依靠引擎自带的导航系统,同时辅助相关逻辑代码实现。想要实现导航,首先需要对导航路径进行设置,将敌人行走的路径进行烘焙,使其变成储存一定信息的导航网格。然后确认导航路径的烘焙是否合理,确保敌人可以正常导航。接着给敌人创建一个动画控制器,这个动画控制器聚合着敌人的不同动画状态。当满足一定条件时,就会执行对应的动画。敌人动画控制器制作完成后,需要给敌人挂载一个导航组件,此时可以直接在导航组件上设置导航信息,也可通过脚本控制导航信息。在本游戏中,我通过脚本编写,给敌人设置导航目标点,调用导航方法,最终实现敌人追踪功能。

1573614565(1).jpg

1573614577(1).jpg

敌人生成功能

在游戏中敌人的生成是有关卡限制的。第一层敌人在玩家进入游戏后开始逐渐生成,当玩家杀死生成的所有小僵尸敌人后,大boss僵尸才会按照游戏设定的时间点生成。游戏中有障碍墙,是由巨石组成的石门。当玩家击杀当前关卡中所有僵尸后,玩家才可以用枪摧毁石门,此时玩家进入到第二关。第二关和第三关生成敌人的逻辑是一样的。但是区别在与每一关生成的敌人属性是不同的。这些僵尸的血量随着关卡的变化变得越来越多,同时它们得攻击力也会随之增加。游戏的难度在不知不觉中更大,这对于热爱挑战的玩家来说是非常合理的设计。

1573614606(1).jpg

  • 微信
  • 赶快加我聊天吧
  • 开发交流群
  • 海纳百川,大家来水
  • weinxin
微义工作室

发表评论 取消回复