不知不觉又过了3个月,项目终于没那么紧张了,特此找个时间来对前面的3个月搬得砖做一个总结(手动狗头)。主要来介绍下使用UE4的Unlua如何避免内存泄漏和内存管理,如果对Unlua的内存管理机制不太了解请看我上一篇文章
Elio:Unlua源代码分析及内存管理zhuanlan.zhihu.com一、重温Unlua内存管理机制
Unlua在lua和UObject绑定的时候,会把生成好的unrealLuaClass放入G表中。并且资源会被GObjectReferencer引用住,只有当unrealLuaClass从G表移除并且没有别的lua引用的时候,触发__GC方法,然后unlua会把uobject从GObjectReferencer移除,完成lua和资源的释放。
下图是绑定lua和Uobject时添加引用的时机。
![bc44cd577df989a84636429eaaa1b61c.png](https://i-blog.csdnimg.cn/blog_migrate/cc7aa68d3cd91c1beb273b55c8cae0b9.jpeg)