参考【Unity 2D游戏开发教程】整理的学习笔记,对应github 的仓库地址为https://github.com/zs8861/2D-Platform
敌人受伤的红色闪烁
当武器的Collider 碰撞到敌人的Collider 后,判定为敌人受伤,那么通过红色闪烁体现敌人被击中
在2D 游戏中,其实就是改变Enemy 这个GameObject 的Sprite Renderer 组件的Color 属性来实现(先保存原始颜色,然后原始颜色和目标红色切换闪烁一段时间)
被攻击之后大概的效果如下
为敌人增加AI
实现蝙蝠敌人在一定的空间限制范围内随机移动
通过增加MovePos、LeftDownPos、RightUpPos 这几个GameObject 来设置敌人的运动范围,运行效果如下:
然后可以将敌人对象、MovePos、LeftDownPos、RightUpPos 合并到一个GameObject 下面,然后做成一个预制件,后续就可以基于这个预制件在合适的时机、合适的关卡中随机地、动态地创建出一个敌人,逐步丰富游戏。其他的敌人、机关等要素都可以类似这么做
敌人掉血粒子特效
在敌人被攻击的时候通过掉血粒子特效可以更加丰富打击感
在场景中新建一个Particle System,对其参数设置如下,并将其做成一个预制件,在需要的时候实例化并播放
完善代码,当敌人被攻击的时候播放粒子特效:
运行效果如下:
遗留问题
- 本次笔记中红色闪烁展示敌人被攻击只是功能说明,实际视觉效果并不好,好的被攻击效果该怎么做?
- 怎么增加打击感?受伤粒子特效、屏幕震动、音效,还有其他什么更多、更好的方式吗?
- 有什么更好的2D 素材可以增加溅血特效的视觉冲击感?
- Particle System 组件分别有哪些属性,各自的作用是什么?
- 随着游戏变大,场景中的GameObject 越来越多,工程里面的文件越来越多,怎么管理?