提问者:小点点

创建具有全局生存期的UObject


我有一个普通C++类,其中需要具有UObject类型的属性。

class A {
private:
    UObject* SomeSpecialObject;
};

如果我用NewObject创建这样的属性,当我加载新的level/map时,由于GC,我将得到悬空指针。 我可以使用弱指针和检查对象是否仍然活着,但我需要这个对象有相同的生命周期的应用程序。

如何创建具有这样全局生存期的UObject?


共1个答案

匿名用户

我猜这是个虚幻的引擎问题。 一旦您的UObject被创建,您就可以调用它的方法“addtoroot()”。 在此之后,它将永远不会被GC删除。

https://docs.unrealengine.com/en-us/api/runtime/coreuobject/uobjectbaseutility/addtoroot/index.html

向根集添加对象。 这样可以防止在垃圾回收过程中删除对象及其所有后代。