[LayaAirIDE 2.0]Laya2.6 物理系统内存泄漏与设计不合理的PhysicsSimulation

1.内存泄漏BUG
PhysicsSimulation.shapeCastAll方法存在内存泄漏,效果在我发的截图中,原因是此方法内部没有执行而导致内存泄漏
this._collisionsUtils.recoverAllHitResultsPool();
 
 
2.不合理的PhysicsSimulation
每个Scene3D对象都独自拥有一个PhysicsSimulation是否合理?
当同时拥有多个Scene3D(PhysicsSimulation)对象时,内存过大会导致超过预设值的16MB物理内存,在动态增长内存的版本里一样会导致内存过大而游戏奔溃。
Scene3D使用场景1:UI面板添加Scene3D到UI节点显示3D模型对象。
Scene3D使用场景2:在已加载一个Scene3D后请求加载另一个Scene3D对象
场景1解决方法:构造函数里加个参数允许使用者不使用PhysicsSimulation,而达到游戏中同时间只存在一个PhysicsSimulation。
场景2解决方法:加载新场景前,先删除本场景。
企业微信截图_15865070887919.png 企业微信截图_15865071067585.png
已邀请:

Aar0n

赞同来自:

感谢反馈,第一个问题已经按照方法修复。
第二个问题,是用户自身需要在切换新场景前弄一个小的过度场景,然后删除之前的,再加载新场景。

要回复问题请先

商务合作
商务合作