c++ - TMap 中的 UObject 指针
问题描述
我创建了一个包含各种 UObject 指针的映射,问题是这些指针最终由于垃圾收集而被删除。
我已经阅读了使用 AddToRoot 或使用 UPROPERTY 的解决方案。但是,我认为我不能使用 UProperty,因为正在创建的 UObject 是在函数中创建的,然后存储在 TMap 中。此外,我希望利用垃圾收集(所以 AddToRoot 没有用......)理想情况下,我可以以某种方式告诉这个新创建的对象不要删除/垃圾收集,直到它的父级(UClassOne)被删除......
这是该问题的简短示例...
UCLASS()
class SAMPLEGAME_API UClassOne : public UObject
{
GENERATED_BODY()
public:
void AddToMap()
{
// NewObj eventually garbage collects and future references to it in the TMap result in a crash...
UObject* NewObj = NewObject<UObject>(this);
MyObjects.Add(MyObjects.Num(), NewObj);
}
TMap<uint8, UObject*> MyObjects;
}
解决方案
推荐阅读
- php - 无法让 wordpress 停止制作额外的 HTML 部分?
- typescript - 在 Typescript 的模型中创建静态函数时找不到命名空间“mongoose”
- c# - 使用 Durable Functions 推送到服务总线的消息计数不可靠
- python - 如何从输入范围创建数组
- c++ - Minimum Window Substring
- python - Expected MyPy errors when using Generic class but none given
- node.js - Why am I getting data from the database slowly?
- vue.js - How to disable prefetch in VueJS PWA?
- mongodb - Mongodb Aggregation group, count and group
- html - CSS调整按钮大小