← SEARCHABLE ARCHIVE
Unreal Engine · 2026-07-16

将 Blueprint 项目迁移到 C++ 的现实边界

将逻辑保留在 C++ 中,将小部件设计保留在 WBP 中

INTERACTIVE READING MODE →

该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。

将蓝图项目移至 C++ 时,所有.uasset设定消除目标很容易。 然而,移动游戏逻辑和UI布局的成本是不同的。

适合迁移到 C++ 的部分

  • 保存和加载规则
  • 战斗和动作验证
  • 数据处理及常用功能
  • 代理连接
  • 子系统和框架类
  • 从多个蓝图复制的逻辑

在ProjectDT中,副作用是在处理正确答案后执行的。UDTUISubsystem::ProcessSolvedProblem()集。 在ProjectTB中,C++函数负责购买、安装和部署验证。

部分最好留给 WBP

  • 小部件树布局
  • 设计师经常更改尺寸和颜色
  • Widget Animation
  • 图像和字体等表达资产
  • 放置在关卡中的视觉元素

将此部分转移到 C++WidgetTree您需要将其编写为代码或编写 Slate。 有可能,但是修改的速度和设计者的可操作性会有很大差异。

组织公共和私人文件夹

ProjectDT 创建一个向外部公开的标头。Public,实现cppPrivate搬迁至

Source/ProjectDT/
├─ Public/
│  ├─ System/
│  └─ Investigate/
└─ Private/
   ├─ System/
   └─ Investigate/

如果只将模块外使用的合约放在Public中,Include关系就变得清晰起来。 无需在 Public 中保留内部实现的标头。

从 Blueprint 迁移到 C++ 并不是全部或全部。 对于大多数项目来说,在 C++ 中收集的规则和状态的边界以及作为设计外壳维护的 WBP 是现实的。