文章目录
1.敌人准备工作
1.1 创建Prefabs
拖拽图片至层级窗口快速生成Prefab,并命名为Cucumber。这里优先制作最基本的游戏敌人黄瓜怪。
1.2 设置帧动画
和前面的文章一样所有的游戏图片素材都设置为32像素,点采样无压缩。
为黄瓜怪亲厚添加run、dead、idle、attack、hit五种帧动画,如下截图:
添加的帧动画可能存在播放时一直闪烁,不流畅的问题,这时需要调整Cucumber的Sprite Renderer下的层级SortingLayer = NPC,并且Order in Layer = 1。
1.3 添加碰撞体 / 刚体
为黄瓜怪添加刚体和碰撞体,锁定Z轴使它不会发生滚动,并调整它的碰撞检测边界与自身大小保持一致。
1.4 设置碰撞图层,调整碰撞关系
此时运行游戏,依旧存在一个小bug,Player在移动的过程中会推动黄瓜怪。
这需要调整Player的碰撞图层并修改碰撞关系。为Layer添加Player,只修改当前层,不修改Player的子物体图层。
在Edit - Project Settings - Physics2D修改物理碰撞关系如下图:
Player不应该地面上的所有物体发生物理碰撞,NPC与NPC之间也不应该发生碰撞关系。
2.添加敌人部件
为敌人创建一些必要的部件和组件
2.1 添加巡逻点
希望敌人巡逻,设置两个点让敌人获得这两个点的坐标并在这两个点之间来回移动。
- 创建两个空点Ponit_A和Point_B,并把他们修改为绿色标记在黄瓜怪的左右两侧
- 重命名Cucumber为SpriteSetting并坐标归零
- 创建新的空物体命名为Cucumber,将它坐标归零并把左右标记点和SpriteSetting纳为它的子集
标定点A,B,游戏物体和Cucumber是平级关系,这样当黄瓜怪进行移动的时候,左右巡逻标记点不会跟着黄瓜怪的移动而移动。
2.2 添加范围检测
怪物移动过程中需要判断攻击的范围,需要一个范围检测,检测到Player就攻击,检测到炸弹就把它吹灭。这个检测范围是会跟着黄瓜怪一起移动的,所以在当前黄瓜怪身上创建一个空物体CheckArea添加BoxCollider2D勾选为触发器并编辑它的尺寸。
该范围检测只检测黄瓜怪在移动过程中遇到的Player和炸弹,为它单独创建一个Layer图层CheckArea,并修改它的碰撞关系只勾选Player和Bomb。