分享一个在早年自学过程中制作的战斗系统。很早之前,刚开始学习游戏制作时的产物。非常简单而且粗糙,不过可以给初学者做下参考。
主要部分其实是几个脚本,另外附带了一些做好的预制体。脚本里面带有注释,不过还是建议有一点代码基础(初学者写的代码,懂得都懂)。
B站链接:【unity 素材】简单的2D动作游戏 战斗系统_哔哩哔哩bilibili
攻击脚本
首先要给“攻击”预制体本身带上“ATK”标签,拼刀和反弹判定依赖这个。
然后加上碰撞箱组件,并设置为触发器(这个不需要教吧,基础操作)。
创建脚本并且继承Attack NBT类。
继承Attack_NBT类后需要覆写AttackEnd方法,即攻击怎么结束。其他的看个人需求,如果想给攻击增添不同效果可以自己修改,包内有做好的预制体可供参考。
写好并挂载脚本之后就是这样。
图中最后有一个“Hit”是在子类中添加的内容,用于制造击中效果,只是个示范,完全可以不加。
要注意一部分属性并没有被(强制)用到,比如存在时间,或是连击次数。这些属性主要是为定制特殊的攻击效果留下的接口,需要在子类中自己编写相关方法,详细的可以参考项目中的其他预制体。
受击(生命)脚本
准备工作是一样的,先打好标签,玩家阵营就“Player”,反之“Enemy”。
碰撞箱也是,要不要设置成触发器都行,看需求。
角色身上的动画器里面,必须要有“Death”和“Hurt”两个状态,分别用“death”和“hurt”参数控制。
然后编写脚本,继承“Health”类,挂上就行,操作和攻击部分一致。
其他
项目中有演示场景,可以简单的查看一下效果。
角色身上的Behavior脚本功能大多已经去除,只是控制攻击用的,需要相关功能需要自己写(当然要是可以改成能用的状态也行)。
Attack_Maker脚本是针对包内已有预制体写的测试用脚本,用于生成攻击体,或是对其进行修改。
部分攻击预制体上还附带了随攻击属性改变外观的脚本和材质,也不是必须的。
有两种资源可选:
1.unitypackage,只包含Asset资源,项目标签和图层需要自己设置
package链接: https://pan.baidu.com/s/1OYk00NYDNLCC-XfRL1pfKg?pwd=om6e
2.项目文件,载入后可以直接运行 资源中除了演示用到的攻击和角色,外,还有几种其他攻击预制体可供参考。
项目文件链接: https://pan.baidu.com/s/15zZVjKJlX7rPA_0dtrmpKA?pwd=5l68