虚幻蓝图编程
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unreal-blueprints-ek8q 到当前 AI 助手。
技能介绍
先解决蓝图里的三类混淆
在 UE5.4+ 的 Blueprint 项目里,*.uproject 与 *.uasset 只是入口;真正容易失控的是逻辑放哪、数据怎么暴露、蓝图之间如何通信。这个技能面向可视化编写者:当你在 Blueprint Class、Level Blueprint、Construction Script 和 Event Graph 之间切换时,它帮你先判断问题类型,再决定节点流程,而不是把所有逻辑堆进关卡蓝图或 Event Tick。
核心工作方式
- 先选蓝图类型:可复用对象使用
Blueprint Class,派生自Actor/Pawn/Character/ActorComponent;Level Blueprint只做关卡专属脚本。 - 编辑器期设置交给 Construction Script:程序化摆放、按变量配置组件等放在编辑/放置时执行,而不是运行时玩法。
- 运行时逻辑放入 Event Graph:
BeginPlay做初始化,输入、重叠等事件做反应;除非确需逐帧,否则避免Event Tick。 - 用变量和函数暴露接口:变量可通过眼睛图标设为
Instance Editable,并用分类分组;getter 优先用无execpin 的 pure 函数。 - 按耦合关系选择通信方式:自己持有的类型可用直接
Cast To;跨类型调用用 Blueprint Interface;一对多广播用 Event Dispatcher。 - 用蓝图调试器验证:在节点打断点、观察变量,用
Print String确认 PIE 中的执行路径。
适用边界与注意点
适合蓝图内的玩法逻辑、事件图、构造脚本、变量/函数/宏,以及 Cast、Interface、Event Dispatcher 的选择。不要把性能关键系统、大型数据结构或需要源码 diff/单元测试的逻辑留在 Blueprint;这类场景应转向 unreal-cpp-gameplay。输入映射交给 unreal-enhanced-input,AI 决策交给 unreal-behavior-trees。
常见坑包括:连续 Cast To 造成硬引用和加载时间变长;把可复用逻辑写进关卡蓝图;过度依赖 Event Tick;在 Construction Script 里做运行时生成;变量未设 Instance Editable 或 Expose on Spawn 导致实例不可见;调用 Interface 前未确认目标实现接口。通信方式的取舍与 dispatcher 绑定细节可参考 references/communication.md。
使用场景
- 正在编写 UE5 蓝图类并设计变量、函数与宏,希望数据接口清晰且可在实例上编辑。
- 需要在事件图中处理 BeginPlay、重叠、计时器等响应,避免把逻辑过度堆在 Tick 上。
- 两个蓝图需要协作,要判断该用 Cast、Interface 还是 Event Dispatcher,避免硬引用耦合。
- 准备放置带组件的 Actor,想在 Construction Script 中做编辑器期配置,但不想引入运行时逻辑。
适合人员
- 用 UE5 蓝图开发玩法的客户端工程师,想把逻辑结构、变量暴露和通信方式规范化。
- 负责关卡脚本但常把可复用逻辑误写进 Level Blueprint 的关卡策划,需要明确蓝图类型边界。
- 从 C++ 转向可视化脚本的引擎程序员,想按 UE5.4+ 的蓝图节点流程组织代码并理解调试方法。
- 维护多人玩法原型的小团队技术成员,需要在不引入 C++ 的前提下降低蓝图间的强耦合。