【问题标题】:Navigation not being generated for spawned Instanced Static Meshes Unless Moved In Editor除非在编辑器中移动,否则不会为生成的实例化静态网格体生成导航
【发布时间】:2022-09-29 22:46:51
【问题描述】:

我目前有一个演员,它在程序上生成实例化静态网格体以创建“地牢”作为构造脚本的一部分(在事件图中调用自定义事件)。如果我将actor放置在一个关卡中,导航网格体体积将在Instanced Static Meshes上生成导航,但是,如果我将actor生成到关卡中,它不会。如果我在关卡开始时生成actor,然后模拟关卡,我可以拖动来移动actor,这会导致在实例化静态网格体上构建导航。

我已经用一个简单的actor进行了测试,它从ConstructionScript节点生成了一个实例化静态网格体,它具有完全相同的行为。我将导航网格运行时生成设置设置为动态。

我附上了一张图片,显示了一个白色框(静态网格体)、一个方格框(一个生成已放置在关卡中的实例化静态网格体的演员)和更大的区域(我的演员在 BeginPlay 的等级)。左图是加载关卡后它的显示方式,右图是我在编辑器中拖动以移动生成actor之后的样子。

任何帮助将不胜感激。谢谢

    标签: unreal-blueprint unreal-engine5


    【解决方案1】:

    这些类似的问题让我非常痛苦,直到我终于找到了背后的东西。

    好像只要你打电话清除实例(无论是在蓝图还是 C++ 中),那个(分层的)实例化静态网格组件的导航数据都会消失。之后,所有新添加的实例也将缺少导航数据。我猜它是引擎中的一个内部错误......无论如何,我的解决方案是替换所有使用清除实例经过删除实例(循环所有实例以一一删除)。

    代替

    HISM->ClearInstance(); // HISM: hierarchical instanced static mesh component
    

    while (HISM->GetInstanceCount() > 0)
    {
        HISM->RemoveInstance(0);
    }
        
    

    这应该是非常不够的,但至少在我的情况下问题得到了解决。

    希望这对你有用~

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      相关资源
      最近更新 更多