[UE4]对象的垃圾回收与内存常驻

1 · 王爱国 · April 26, 2017, 6:11 a.m.
keywords:UE4, Memory Persist, GC, 垃圾回收, 内存管理 防止GC的办法 一个UObject类型的变量,即使是static,默认也会被GC掉。 要防止该对象被GC,有5种方式: 作为成员变量并标记为UPROPERTY(); 创建对象后 AddToRoot() ;(退出游戏时需要RemoveFromRoot()) 对目标设置一个有效的Owner:SetOwner(); FStreamableManager Load资源时,bManageActiveHandle 设置为true; FGCObjectScopeGuard 在指定代码区域内保持对象; Uobject不能使用TSharedPtr进行引用计数,非UObject才可以;如果一个非UObject的类想加入GC,那么必须继承FGCObject类。 UPROPERTY()用法 URPOPERTY() UObject* MyObj; AddToRoot()用法 UMyObject* MyObj = NewObject<UMyObject>(); MyObj.AddToRoot(); SetOwne...