如何回收并重置任意类型的UWidget

游戏内希望回收UMG UWidget,对它进行属性重置以进行复用

您好,那你需要做一个自己的队列或者堆栈来管理自己的UWidget,可以是一个Subsystem。具体可以参考下UCommonWidgetStackLegacy,这个类虽然我们应该没有再用了,但是可以作为你的需求的一个解决方案模板。

抱歉,我的问法似乎产生了误解。 我想问的是是否有“重置一个UWidget到初始状态的接口”,我这边尝试了Initialize()以及通过UUserWidget的DefaultClassObject属性复制​的方式来讲一个已经被业务使用修改后的UWidget进行重置。但是似乎没有任何效果,CDO内没有存放我们希望的UUserWidget所有children的UWidget。 UWidget的属性初始化似乎在FArchive反序列化的时候就已经完成了。

没有直接这样一个接口,可能需要自己定义序列化列表,走Save,Load流程。