UE4:如何检测蓝图中的actor refrence 是否已被破坏?

For*_*aia 2 null reference unreal-engine4 unreal-blueprint

在一个关卡中,我正在创造一个演员,该演员旨在在某些时候而不是在其他时候存在。我很好地生成了演员,并计划在我不需要它时销毁它。但我想确保我不会处于这样一种状态:当演员不存在时,我会试图对演员采取行动。

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

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

Ruz*_*ihm 9

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

IsValid 节点

如果您只需要分支行为,您可以右键单击Get该对象引用的节点并选择Convert to Validated Get

转换为验证获取示例 (图片归功于 Twitter 上的 @Thunder_Owl)

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