最近在尝试制作类似东方的弹幕游戏,对于其中激光类型的弹幕一直没想好怎么做效果比较好,最近试了下Niagara感觉效果不错。
1. Niagara
1.1 创建Niagara
因为我使用的是4.26的引擎,和5.0以上的操作可能会有些区别。
添加一个DynamicBeam。
1.2 设置Niagara的属性
将“LoopDuration”改为0.01。
在“用户公开”处创建vector属性,命名为“EndPosition”,设置给“BeamEnd”。
在“用户公开”处创建float属性,命名为“LifeTime”,设置给“LifeTime”。
在“用户公开”处创建float属性,命名为“Width”,将“BeamWidth”下的曲线替换成AddFloat,设置A为1,B为“Width”。
2. 发射器
2.1 创建发射器
创建一个Actor作为激光的发射器,根组件下添加一个Niagara组件。
2.2 发射器逻辑
为方便测试,我们让它的发射方向为Forward方向,长度为1500。在设置完粒子后,每帧先执行一次射线检测,记录射线命中的点位。
根据射线命中的位置设置激光粒子的终点,激光粒子的宽度和生命周期可以动态调整。根据一定间隔对射线命中的目标造成伤害。