zzhprogram

Results 3 comments of zzhprogram

[email protected]:zzhprogram/PuertsDemo.git 可以clone一下这个demo,里面的Demo 解释.doxc 描述了如何使用项目。

> 这个其实需要自己在ts层有个ui的框架,umg和actor不太一样,umg只会destruct,真实的gc需要依赖没有引用关系,只要ts里面还持有这个umg,就会出问题。简单一点的解决方案,在destruct的时候延迟一帧markpendingkill(list的重排也会触发)。复杂一点的话,就是umg的uobject不要直接暴露给外部,而是ui框架层持有,destruct的时候,ui框架释放引用。 我更新了一下项目,换成单例管理,创建UMG,并且把能想到的puerts对UMG的引用都清理掉了,但是切换关卡仍无法GC,puerts仍保留引用,可以帮忙看看原因吗?仓库地址: https://github.com/zzhprogram/PuertsDemo.git, 具体看Demo解释.docx文件。

> 简单看了下代码 > > 1. destruct拼错了 > 2. mixin的时候应该objectTakeByNative为true(不过即便是false,只要正常清理了,也不会泄露,只是设置为true更好) > 然后可以通过obj refs 配合inspector看看uobject在ts里面的引用链,这样方便确认是puerts层的引用没释放,还是自己的ts引用没释放 可以看看我 文档,里面我没用Mixin的UMG,入口文件是UMGNestedTest.ts, 仅仅是一个原生的 UMG类,绑定按钮函数,切换关卡后解绑按钮函数,并清除ts对UMG的持有,但是切换关卡后,obj refs 仍显示 Puerts_UserObjectRetainer保留了引用。