将 Blueprint 项目迁移到 C++ 的现实边界
将逻辑保留在 C++ 中,将小部件设计保留在 WBP 中
该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。
将蓝图项目移至 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 是现实的。