Wwise音频在Unity中内存泄露问题
Wwise音频在Unity中内存泄露问题
泄露判断
泄露判断1:
首先在UWA上跑出来整体就是增长的趋势,虽然中间有卸载,但是还是总体增长
泄露判断2:
用wwise检测Unity的音频内存,图一是进入主场景的内存
图二是反反复复进地图出地图几次后,并无其他操作时,再回到主场景的内存
明显看到增长的是多了2000个
Wwise客户端这个窗口,就是当前存在的音频相关的Object,切换的时候有些会从列表删除,然后看到这些Object注册后从来没有卸载过,但是场景里没找到对应的GameObject名字
去看日志,发现这些事件都是失败的,然后GameObjectName对应的那一列,跟上面残留的Object相同
问题是出现在AkAutoObject开头的所有的GameObject是我们希望播放音频的时候,发现对应的GameObject没有注册到Wwise内部,然后Wwise内部会自动创建一个新的对应的GameObject注册进去
去查代码,这里调用的播放事件
发现切换的时候断点会走到这里,说明播放音频失败了,红框里对应的gameObject就是没有注册到wwise里面,然后还想让他播放,就是日志里列表一堆Event错误
然后去主基地场景找到这些GameObject,名字也对的上就是这些东西
所以核心问题就是这些Interactor上没挂这个AkGameObj脚本或者是在代码里调用wwise的注册接口把把自己注册到wwise里面,
切换场景的时候又有个什么统一的关闭声音的播放事件,然后wwise发现传进来的GameObject没找到,播放失败,但是会自动生成这些鬼东西
把主基地几个Interactions挂上AkGameObj后,同样反反复复进出几次地图发现Object已经没有明显增长了
然后看到这个窗口里,已经没有残留的下图中圈住主基地的这几个,但是还有其他的,应该是一样的问题,只不过是在其他地图里面
这些是其他的一些GameObject上没有挂AkGameObj脚本,但是还走到了wwise播放音频的地方,所以要查一下,是漏了挂脚本,还是说哪里配的不对,本来不需要音频的还让播放音频了