我有一个普通C++类,其中需要具有UObject类型的属性。
class A {
private:
UObject* SomeSpecialObject;
};
如果我用NewObject
创建这样的属性,当我加载新的level/map时,由于GC,我将得到悬空指针。 我可以使用弱指针和检查对象是否仍然活着,但我需要这个对象有相同的生命周期的应用程序。
如何创建具有这样全局生存期的UObject?
我猜这是个虚幻的引擎问题。 一旦您的UObject被创建,您就可以调用它的方法“addtoroot()”。 在此之后,它将永远不会被GC删除。
https://docs.unrealengine.com/en-us/api/runtime/coreuobject/uobjectbaseutility/addtoroot/index.html
向根集添加对象。 这样可以防止在垃圾回收过程中删除对象及其所有后代。