《Lost Warriors》一款基于Unity和Spine的2.5d横板动作格斗类游戏,参考了《失落城堡》并加入了一些创新。
本人为此游戏的负责人,参与了此游戏的全部程序,策划,2D动画的工作。
本游戏灵感来源《失落城堡》音效与少量UI借鉴于此。
此游戏只用于个人学习 ,绝无任何商用及利益行为,若有侵权可联系立即删除。
相关地址
代码仓库:https://gitee.com/hyuhyua/lost-warriors
游戏视频:https://www.bilibili.com/video/BV1L64y1U7qL
游戏视频
总览
开发平台:Unity2019.4.10f1
游戏系统:PC
目标年龄:10岁以上
预计评级:E10(十岁以上的所有人)
游戏背景
一位勇者在战斗中误入一片神秘的森林,却在黑暗中遭遇偷袭,苏醒后发现自己有着意识却仿佛失去了身体,“重生”的勇者需要找到一种方法让自己能够继续战斗,勇士能否在危机四伏的路上找回自己的身体,击败邪恶的怪物,找到自己的身体呢。。。
游戏大纲
你将化为勇士闯关,虽然重生后失去了身体,你却意外的发现自己能够附着在怪物的身上,你可以将自己的意识寄存于怪物身上,控制怪物击败其他怪物。在击败怪物时有概率会保留其尸体,你可以选择寄存到此新身体上,或者维持原样。当心!你也许会在路途中遇到更强大的Boss,打败它们并找回属于自己的身体吧!
USP
- 与其他游戏主角不同的,此游戏的主角正是你将面对的怪物!
- 多种怪物够你选择,体验不同的怪物能力与特性!
- 卡通画风与硬核的操作模式,让人沉浸其中!
游戏技巧/截图
- 树妖的攻击为蓄力攻击 在绿色光圈出现时代表已经可以松开攻击键 开始攻击了! 而且树妖还有独特的回血技能哦!

- 蝙蝠特点为移动速度和攻击速度不错 并且有吸血技能

- 食人花为炮台式攻击 有强大的火力但攻击时不能移动 利用自身沼泽的禁锢技能会事半功倍

- 幽灵的优势为射程和瞬移技能 可以对敌人进行拉扯

- 狼人有自己独特的三连击 第三次攻击能将敌人击倒

开发时遇到的问题与解决
- 在Unity开发中 碰撞检测需要仔细理清楚 不然会出现很多问题 比如敌人的技能伤害了敌人 敌人吃到了我方回血的技能。
此时Unity中的不同层级的碰撞检测功能会很方便的解决 可以创建不同层级 然后在设置里的Physic2D中对其设置 例如- body层只与margin层碰撞 防止走出地形
- enemy层与playerattack层碰撞 使攻击能打到敌人身上
- body层与enemyInherit层碰撞 使能够夺取敌人的身体
- 等等。。。。。。
在写食人花的子弹逻辑时会遇到一个问题 逻辑是:打到敌人会消失 没打到敌人飞行2s会消失
- 因为用到了对象池和协程 所有就有一个问题:子弹A如果打到敌人消失了 但是过2s子弹A会执行一遍协程函数再次消失 如果此时很巧 子弹A 又被打了出来 那么它会因为之前的协程函数刚出来就不见了
- 解决办法很简单 就是打到敌人时取消全部协程(不要笑我。。。因为之前不知道能取消hhh 但确实困扰了我很久。)
- 在怪物人工智能方面用到了 贝叶斯算法 就是当怪物已经接近角色时 会检测你人物是否在移动 如果在移动那么其实攻击到人的概率并不高 那么他们会统计所有的攻击成功率来推断是否进行攻击
- 简单地说 你躲避怪物的攻击次数越多 怪物的警惕性就越高 他们会等你不移动的时候在进行攻击 以确保他们的攻击能够命中你的角色
- 还有一个问题是Spine与Unity的兼容问题 Spine导入进Unity的角色默认渲染中心坐标并不是Spine的中心坐标(脚底) 而是整个人物的平均值坐标(肚子这块)
- 那么这就有点难办了 因为角色有大有小 我其实希望渲染时 y值越低 渲染在最前面 所以坐标肯定要在脚底 但是因为是Spine导入进来的 找了很久都没找到改变渲染坐标的方法 就会出现什么情况呢:大树在下面(更靠近摄像机,幽灵在上面(离摄像机更远), 但因为渲染坐标却相反了,导致在上面的幽灵反而把在下面的大树挡住了。
- 在思考很久后想到了一个好办法,既然Unity里面改不了 那我就去Spine里面改 我在Spine里面人物的下方放置一个和人物高度差不多的y值相反的透明图片 这下子通过平均后 渲染坐标就来到人物的脚底了。
