【问题标题】:UE4: How can i detect if an actor refrence has been destroyed in blueprints?UE4:我如何检测蓝图中的演员参考是否已被破坏?
【发布时间】:2020-03-18 17:40:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: reference null unreal-engine4 unreal-blueprint


    【解决方案1】:

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

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

    (图片归功于推特上的@Thunder_Owl)

    因此,基本上您可以对生成的 Actor 的最新实例有一个引用(可能在您的关卡或 GameMode 中),然后在您想要检查它是否被销毁的地方,您可以检查该引用当前是否有效。

    【讨论】:

    • 我相信还有一个宏可以通过分支节点有效地构建它,不确定是否值得指出。
    • @GeorgesupportsGoFundMonica 好点。我编辑了答案以包含它。
    • 谢谢,我是 ue4 的新手,我发现有些地方不太直观,文档也很缺乏
    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 2022-11-11
    • 1970-01-01
    • 2019-07-11
    • 2015-09-12
    • 2016-01-04
    • 2014-08-24
    • 1970-01-01
    相关资源
    最近更新 更多