使用unity制作的一款生存类游戏demo(一)

时间:2024-05-20 07:01:47

   花了20多天的时间来完成这个demo,主要是为了实现一些自己设想的功能,并未注重关卡和玩法的设计,整体上还不够完善或者说不够完整。

   demo中的美术资源均来自asset store和各种资源网站。使用的插件有NGUI,post progressing stack。

   这篇博客主要介绍这个demo整体的设计思路和玩法,下一篇博客再介绍UI系统和每种玩法的实现细节。

  项目源码:https://git.coding.net/huiseguiji/survival-game-demo.git

玩法/游戏背景

     背景设定和大多数末日生存游戏类似,玩家需要在一个因为病毒爆发而周围充满丧尸的世界里生存。主要任务有:

     1搜集食物,药品维持生命值,防止被感染。

     2搜集武器装备对抗丧尸。

     3搜集资源建造营地和防御设施(每隔一段时间会有爆发尸潮)。

     目前设想的有这样几个游戏场景:工业风格场景,小镇场景,农场场景,小规模城镇场景,郊区场景。玩家初始时位于郊区场景,且营地必须建造在初始郊区场景。每个场景有各种可选择的支线任务,完成任务会有奖励。主要任务是建造坚固的营地以抵御每次尸潮。目前只设计了一个小镇场景用来测试每种功能的实现效果。

使用unity制作的一款生存类游戏demo(一)

 

 

使用unity制作的一款生存类游戏demo(一)

主菜单页面

      主菜单我并没有采用静态的UI界面,而是搭建了一个简单的场景,并给摄像机添加一个循环动画,点击play后异步加载主场景,并显示进度条,同时当前场景依旧运行。

使用unity制作的一款生存类游戏demo(一)

使用unity制作的一款生存类游戏demo(一)

 

背包系统UI

      背包系统计划是做成rust,七日杀这种风格。背包容量设置有三种,当装备不同背包时,背包容量会自动改变(不可用背包格子以灰色显示)

      左边显示装备栏和正面视角的玩家,中间是背包栏和玩家当前信息栏(生命值,饥饿值,饥渴值,感染值,护甲值,伤害值),右边是拾取栏。打开背包系统时,背景还会被模糊处理。

完成后的UI风格如下

使用unity制作的一款生存类游戏demo(一)

物品合成系统UI

         物品合成系统暂时只有3个合成例子,以后如果继续完善的话修改相关代码即可,后期我计划把物品合成的信息卸载配置文件里,运行时再读取。目前写在代码里只是为了偷懒。

         完成的效果是打开合成栏时,会先检测每样可合成物品所需要的物品在背包中是否有足够的数量,如果数量不够则所需物品数量显示为红色否则显示黑色。合成按钮的上方有输入栏可以输入想要合成的数量,点击按钮同样会先检测所需物品的数量,如果背包已满,则关闭合成栏并提示“背包已满””,同时合成的物品会在玩家面前掉落(可拾取).

使用unity制作的一款生存类游戏demo(一)

建造系统UI

        建造系统设定是玩家按B会在下方显示物品建造栏,鼠标移至物品UI上时会显示所需物品信息。点击鼠标左键进行建造,同理也会在点击时先检测背包所需物品数量是否足够。目前建造系统比较简单,后期计划实现一个完整的类似于how to survival里的建造系统(包括营地,房屋,工作台,营火,护栏,陷阱等等)。

使用unity制作的一款生存类游戏demo(一)

 

 

使用unity制作的一款生存类游戏demo(一)

换装

        当玩家装备了相应的物品后,角色蒙皮信息也会随之变化

使用unity制作的一款生存类游戏demo(一)

攀爬跳跃系统

   使用unity制作的一款生存类游戏demo(一)

 

使用unity制作的一款生存类游戏demo(一)

由于人物模型文件和人物动画来自不同的资源,重定向后的角色动画没办法完全与原来的动画匹配,导致仔细看起来人物动作比较奇怪,而且部分动作偏差比较大。

使用unity制作的一款生存类游戏demo(一)

see through效果

    很多上帝视角的这类游戏都有see through效果,比如《how to survival》。除了这种建筑物透视效果,还有一种思路是人物边缘高亮显示(边缘检测)。

使用unity制作的一款生存类游戏demo(一)

地图模块

      尚在开发中。。。。。