参考【Unity 2D游戏开发教程】整理的学习笔记,对应github 的仓库地址为https://github.com/zs8861/2D-Platform
设计一个敌人
在Aseprite 制作的一个蝙蝠怪,导入到Unity 之后,参考《Unity 横版2D 游戏开发学习笔记 - 1:Unity 2D 动画基础》 将其拆分,制作成动画,效果如下:
攻击逻辑
攻击的逻辑是通过碰撞器实现的,逻辑阐述如下:
- 如果玩家没有Attack 行为,蝙蝠的碰撞器碰到玩家的碰撞器,则玩家受伤
- 如果玩家有Attack 行为,武器的碰撞器碰到蝙蝠的碰撞器,则蝙蝠受伤
综上,针对这个简单的攻击逻辑,涉及到三个碰撞器,以及它们之间的不同碰撞关系逻辑对应不同的业务逻辑
Enemy 上的脚本逻辑如下:
敌人抽象类
后续需要扩展不同的敌人,不同的敌人不同的攻击逻辑、属性值配置不同,所以可以基于模板设计模式抽象敌人的设计,设计一个抽象的Enemy 父类,后续不同的敌人都继承自它实现自己的个性化逻辑,有自己个性化的属性
现在只有一个蝙蝠敌人,可以直接继承它
遗留问题
- 攻击逻辑基于碰撞器和Tag 来实现,游戏工程越来越大,该如何规划和管理碰撞器、Tag?
- 敌人的生命值、伤害值一般都是策划可设置的,比如不同类型的敌人配置的值是不同的
- 设计多样、丰富的敌人有什么好的指导方法?