UE4 Unlua源码解析12 - Lua与UE4的混合GC

Posted 珞珈大胖强TURBO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 Unlua源码解析12 - Lua与UE4的混合GC相关的知识,希望对你有一定的参考价值。

Lua与UE4的混合GC


我们知道,UE4中实现了AddReferencedObjects接口,或者用UPROPERTY宏标记的对象,会被纳入自动GC管理中,当没有对象引用此Object时,自动GC,Lua也是类似,当一个表没用其他对象引用的时候,会自动GC,那么Unlua中,我们可以看到UObject除了被UE引用,还会被Lua端引用,那么假如什么都不管,UE的对象在不被引用的时候自动GC,但是Lua还引用他,便会访问到脏数据,那么Unlua是怎么解决的呢?

怎么做到Lua中持有的UE对象,不被UE GC

Lua对象在和UObject绑定的时候,会在代码中将UObject加入不GC的对象FGCObject的ReferencedObjects,这样,确保了Lua中访问的UObject对象实例不会被UE GC自动回收

以上是关于UE4 Unlua源码解析12 - Lua与UE4的混合GC的主要内容,如果未能解决你的问题,请参考以下文章

UE4 Unlua源码解析12 - Lua与UE4的混合GC

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理

UE4 Unlua源码解析1 - 读源码的前置知识