【发布时间】:2021-10-10 00:20:48
【问题描述】:
我已经困惑了几天了,我正在切换到使用智能指针而不是原始指针,但是每次我释放最后一个 TSharePtr 以销毁它所持有的 Actor 时,我当 UE4 试图销毁对象时遇到断言异常...
请注意,我正在销毁的对象也是从蓝图创建的。
错误:
断言失败:GetFName() == NAME_None [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/UObject/UObjectBase.cpp] [行:130]
代码: APointerReferencedActor.h(共享指针对象类): class SMARTPOINTERSDEMO_API APointerReferencedActor : public AActor
APointersManager.h(指针分配): TSharedPtr SharedPointerObjectPtr = nullptr;
APointersManager.cpp: (指针赋值) SharedPointerObjectPtr = TSharedPtr(Cast(GetWorld()->SpawnActor(SharedPointerClass)));
(指针上次引用重置) SharedPointerObjectPtr.Reset();
【问题讨论】:
-
请edit您的问题,并在问题中直接包含minimal reproducible example作为文本,而不是图像。
标签: c++ unreal-engine4