我正在试图弄清楚是否可以重置一个Actor的指针,同时不会让它从世界上消失。
例如:
1. auto Item = GetWorld()->SpawnActor<...>(...);
2. ...
3. Item = nullptr;
- 仅重置指针
演员还在世界上
我相信复制这个演员会起作用,但它绝不是IMO的最佳解决方案。
答案 0 :(得分:0)
您似乎正在假设清除指针会自动销毁Actor。你确认实际情况如此吗?
Looking at the docs,SpawnActor
只会返回一个普通的“哑巴”。指针。在C ++中,将普通指针重置为null
不会破坏它引用的对象;可能需要一些明确的行动来摧毁它。关于Actor Lifecycle的UE4文章似乎也支持这一点。
这可能采取重置smart pointer(TSharedPtr
)或在演员本身上调用Destroy
的形式。