【技术分享】优雅实现子弹转向(无需任何代码与插件)

5da6113dbc7dec1effa292684935612b

1 经验:这个“子弹方向跟随移动方向”的功能一度困扰我很久,不知道怎么简单实现,今天经过深度思考与实践,终于简单实现。(并且只用AGM就可以,无需任何代码与插件)

2 核心技术:使用AGM的FaceDirectingSettings,与ChangeAngleSettings两个节点的组合拳。

3 实现步骤:
(1)设置好你的player,需要发射的子弹,BulletsSettings,发射子弹动作等将子弹发射出来。(这里不多赘述。)
(2)在你的子弹对象中,添加两个节点【FaceDirectiongSettings】和【ChangeAngleSettings】。
(3)先在VS动作中,将FaceDirectiongSettings功能设置好。(对象VS—动作属性—显示方向:Face…)


(4)设置角度:(打开Angle…节点,启用【is_use_face direction】,目标节点选择这个子弹的sprite2d,然后点选【添加节点旋转】)

4 优化:
好了,这个功能已经实现了,但是有一个小问题,就是子弹出现的第一帧,是默认的角度,会闪一帧才会调整好方向。这里也直接用VS来调整这个问题。
(1)把子弹形象的sprite2d的可见性也关闭。(右边的小眼睛关上,这样子弹刚出来的时候,是不可见的,留出时间来让它先执行转向。)
b4a954a7d0243e2a301243fe942ef49a
(2)在第一个动作中,啥也不干,但是一定注意点选上,显示方向:Face,还有一个默认的功能:至少停留一帧。(这样在第一帧子弹不可见的情况下,AGM已经调整好了子弹方向。)


(3)第二个动作,无条件直接执行,在里面也是点选好显示方向:Face,其他默认不用管。执行一个动作:改变自己的对象属性:可见性——visible,启用。

5 好了,完美实现最上面的效果!

5 个赞