UE4:我如何检测蓝图中的参与者引用是否已被破坏?

UE4: How can i detect if an actor refrence has been destroyed in blueprints?

在一个关卡中,我正在生成一个 actor,该 actor 被设计为在某些时候存在,而在其他时候不存在。我很好地生成了演员,并计划在我不需要时销毁它。但我想确保我不会处于我试图在演员不存在时对其采取行动的状态。

我正在考虑具有 new、delete 和 nullptr 的 c++ 对象指针。我将变量初始化为 nullptr,使用 new 时分配指针,完成后删除指针,然后将变量重新分配为 nullptr。这样我就可以通过检查指针是否不等于 nullptr 来检查指针是否有效。

什么(如果有的话)相当于 UE4 蓝图中这个看似基本的概念?

您可以使用 Is Valid 节点检查对象引用变量是否为非空且未挂起销毁:

如果您只需要分支行为,可以右键单击该对象引用的 Get 节点,然后 select 转换为 Validated Get:

(感谢 @Thunder_Owl 在推特上的图片)

所以,基本上你可以有一个引用(可能在你的关卡或游戏模式中)到那个生成的演员的最新实例,然后你想检查它是否被销毁的地方,你可以检查该引用当前是否存在有效。