You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE5 LyraStarterGame重启引擎后布局与部件消失问题求助

问题分析

这是Lyra框架下插件资源的延迟加载/依赖缺失问题,核心是重启引擎后,插件内的HUD相关资产(布局、部件、ActionSet)未被标记为预加载资源,导致引擎启动时未自动加载,仅编译时触发强制加载才会显示。

解决方案
  • 调整插件加载优先级与依赖

    1. 打开插件的.uplugin文件,将LoadingPhase设为PreLoadingScreen,确保插件在引擎启动早期加载:
      "LoadingPhase": "PreLoadingScreen"
      
    2. 在插件的Build.cs中添加Lyra核心模块依赖,保证加载顺序正确:
      PrivateDependencyModuleNames.AddRange(new string[] {
          "LyraGame",
          "LyraUI",
          "LyraExperience",
          "Slate",
          "SlateCore"
      });
      
  • 修正Primary Asset注册配置

    1. 进入Project Settings > Asset Manager,找到LyraExperienceDefinition的Primary Asset设置:
      • 确认插件内Experience文件夹路径已添加到Directories to Scan
      • 将Cook Rule设为Always Cook,避免重启时资源被忽略
    2. 选中LAS_MyGame_StandardHUD资产,在细节面板的Asset Registry区域,确保Primary Asset Type设为LyraExperienceDefinition,Primary Asset Id自动生成即可
  • 强制预加载HUD资源
    在自定义Experience类(继承自ULyraExperienceDefinition)的PostLoad函数中,手动加载HUD布局与部件:

    void ULAS_MyGame_StandardHUD::PostLoad()
    {
        Super::PostLoad();
        // 加载HUD布局类
        if (HUDLayoutClass)
        {
            FSoftObjectPath LayoutPath = HUDLayoutClass->GetPathName();
            LayoutPath.TryLoad();
        }
        // 批量加载HUD部件类
        for (TSubclassOf<ULyraHUDWidgetBase> WidgetClass : HUDWidgetClasses)
        {
            if (WidgetClass)
            {
                FSoftObjectPath WidgetPath = WidgetClass->GetPathName();
                WidgetPath.TryLoad();
            }
        }
    }
    
  • 检查ActionSet引用与初始化
    确保LAS_MyGame_StandardHUD中的ActionSet未使用软引用(或在Experience加载时强制解析软引用),同时验证Lyra的HUD初始化流程是否正确绑定了自定义ActionSet。

  • 清理引擎缓存
    删除项目目录下的Intermediate、Saved文件夹,重启引擎后重新生成项目文件并全量编译,清除旧缓存干扰。

内容的提问来源于stack exchange,提问作者김진우

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:20:02