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

UE5.6.1打包编译错误:BPC_ItemData自定义属性列表未初始化

Unreal Engine打包失败与蓝图变量初始值丢失问题解决

问题详情

  • UE新手,打包编译失败,已尝试重命名BPC_ItemData、重建组件、删除Binaries/Intermediate/Saved文件夹,均无效
  • BPC_ItemData组件用于从DT_ItemData数据表读取数据,设置物品骨骼网格体、静态网格体、音效等属性,PIE运行和编译正常,但开发版/发行版打包无法完成
  • 依赖BPC_ItemData的BP_Item_Base(所有物品基础蓝图)重启后变量初始值丢失:ItemQuantity从1变为0,RowName偶尔丢失,导致放置的物品拾取无响应
  • 核心错误日志:

LogOutputDevice: Error: Ensure condition failed: bCustomPropertyListForPostConstructionInitialized [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\BlueprintGeneratedClass.cpp] [Line: 1242]
LogOutputDevice: Error: Custom Property List Not Initialized for /Game/FPS/InventorySystem/ItemData/BPC_ItemData.BPC_ItemData_C

解决方案

1. 调整构造脚本的执行时机

这个错误本质是蓝图构造阶段访问了未初始化的属性/组件。操作步骤:

  • 打开BPC_ItemData,检查构造脚本是否在组件初始化完成前就读取数据表或设置属性
  • 将依赖组件初始化的逻辑迁移至Event BeginPlay,避免在构造阶段操作未就绪的资源
  • 数据表读取逻辑不要放在构造脚本里,改为游戏启动后按需加载

2. 修复蓝图变量初始值丢失

  • 打开BP_Item_Base,选中ItemQuantity和RowName变量,在细节面板确认初始值正确设置,且勾选Instance Editable(若需保存则额外勾选Save Game)
  • 不要在构造脚本中修改这些变量的初始值,改为在BeginPlay中通过RowName从数据表读取数据后再赋值
  • 先重新编译BPC_ItemData,再编译BP_Item_Base,确保依赖关系更新

3. 修复蓝图结构损坏

  • 右键BPC_ItemData,选择Convert to C++ Class(无需编写代码,转换后可再转回蓝图,这会重建蓝图的底层结构)
  • 核对DT_ItemData的行结构与BPC_ItemData的变量类型,确保完全匹配,无类型不兼容问题
  • 打开项目设置→Packaging,勾选Full Rebuild后重新打包

4. 排查项目层面问题

  • 检查是否存在其他依赖BPC_ItemData的蓝图,避免循环依赖
  • 新建空白项目,复制BPC_ItemData、DT_ItemData和BP_Item_Base过去测试打包,排除原项目本身损坏的可能

内容的提问来源于stack exchange,提问作者Tex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 05:38:25