Unity版本:2020.3.6
IronSource:7.3.0.1
XCode:14.3
现象:项目初始化IronSource之后,调用播放广告时内存不断上升。调用代码很简单
IronSource.Agent.showRewardedVideo();
排查步骤:
1、使用IronSource的Demo、打包、播放RewardedVideo:不崩溃
2、在现有项目中的起始Scene中,直接写按钮调用IronSorce播放RewardedVideo:不崩溃
3、切换至游戏场景,直接调用IronSource播放:崩溃。分析:
a)场景内有影响IronSource播放的代码
b)场景内的光、UI组件、或渲染机制导致播放视频时触发某bug,导致内存上升
4、隐藏光、Post-Process Volumn等滤镜组件:崩溃。(这一部骤可以整合到后续,打包浪费了时间)
5、二分法隐藏场景内一半的GameObject,简单处理脚本报错后打包。——不崩溃。分析:此次隐藏了UI的根Canvas节点,会不会是TextMeshPro里的Shader影响?
6、显示Canvas节点,隐藏子节点中一半的UI面板(所有的TextMeshPro包含其中,全部隐藏)。同时在初始的Scene中复制一份完全相同的TextMeshPro。打包:初始场景中即使包含TextMeshPro也不崩溃;游戏场景中仍然崩溃。分析:不是TextMeshPro的影响。
7、只保留Canvas根节点,隐藏所有子节点:崩溃。分析:Canvas根节点做了什么事情?结果发现:
private void Start() { //设置游戏帧率为60fps Application.targetFrameRate = 60; ... }
8、果断隐藏Application.targetFrameRate的赋值,打包:正常。
原因仍然不明,只能避免触发这个闪退问题了
标签:IronSource,排坑,隐藏,TextMeshPro,崩溃,播放,闪退,节点 From: https://www.cnblogs.com/wangzihust/p/17350978.html