【BUG】动作播放声音后的AudioStreamPlayer节点不会清除

AudioStreamPlayerc重复生成bug.zip (1.6 MB)

复现方式:

1.打开项目后,进入项目测试:backhand_index_pointing_up:

2.按键Z播放AudioStreamPlayer(不会清除的节点)

3.按键X播放AudioStreamPlayer2D(不会显示的节点)

4.然后打开左侧场景的远程查看corescene的节点

5.连续按Z后会出现产生很多AudioStreamPlayer节点但是不会清除情况

问题所在:
1.位置在game object 的 vs 【状态机】的【动作】里的【播放声音】

2.如果没有启用AudioStreamPlayer2D,便会重复生成AudioStreamPlayer

1787303104453 (1)

额外:而且当重复播放音频后,在没有关闭【debug】情况下再回到人物界面场景,在右侧检查器播放根节点的

AudioStreamPlayer-bug,AudioStreamPlayer-bug2,AudioStreamPlayer2D-bug3,都会出现叠加后的重复声音

AI判断:

为什么会这样

AGM 的PlayAudio动作内部硬编码了两套销毁逻辑:

  1. :white_check_mark: AudioStreamPlayer2D 分支:插件内部自动连接finished信号,音频播放结束后调用queue_free()把临时节点删掉,所以场景树不会堆积。
  2. :cross_mark: 普通 AudioStreamPlayer 分支:插件没有绑定 finished 自动释放逻辑。音效播放完毕,节点还留在场景树里,只是停止发声;你每次换枪触发播放,就新建一个,越堆越多GitHub。

普通 AudioStreamPlayer 本身有finished信号,只是 AGM 这个动作没有给普通版本接上自动销毁,只给 2D 版本写了释放代码。

1.而且我发现按F5重置游戏,左侧远程节点也会存在
2.可能保存读取后也牵扯音频节点存在
3.包括用传送门切换场景后,音频也会存在

可能

https://guild.rpgmakerofficial.com/t/topic/1152

【BUG】在【执行读取】后,读取次数越多,声音越大 / 在多个保存节点下随机会出现保存失败的现象

的问题出在这里