Agent Skills
返回列表
💻

Unreal C++ 游戏框架编程指南

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unreal-cpp-gameplay-hhgh。

技能介绍

UE5 的 C++ 游戏代码为什么难写对

在 UE5 里写游戏逻辑 C++,卡住人的往往不是语言本身,而是反射系统:UCLASS()、GENERATED_BODY()、Foo.generated.h 三件套缺一不可,类名前缀(A/U/F/E/I)必须与基类一致,漏掉任何一环都会在 UHT 处理或链接阶段直接报错。另一个高频问题是模块依赖——调用了 EnhancedInput 的 API 却没在 .Build.cs 里声明,链接期就会出现 unresolved external symbol。

这个技能覆盖什么

  • 反射宏的正确用法:用 UPROPERTY 暴露属性(同时让 GC 能追踪),用 UFUNCTION 把行为暴露给编辑器和蓝图
  • Gameplay Framework 角色分工:AGameModeBase 定规则和默认类,APawn/ACharacter 是受控身体,APlayerController 代表玩家意志,UActorComponent 是可复用行为
  • 模块依赖配置:在 *.Build.cs 的 PublicDependencyModuleNames 中添加引擎模块

核心工作流

  1. 按基类选前缀:Actor 系用 A,UObject/组件系用 U,普通结构体用 F
  2. 类上方写 UCLASS(),GENERATED_BODY() 作为类体第一行,.generated.h 放在头文件最后一个 include
  3. 构造函数里用 CreateDefaultSubobject 创建组件并设好 RootComponent
  4. 编译验证:函数体改动可用 Live Coding,改头文件或 UPROPERTY 必须完整重建并确认编辑器中可见

适用边界与常见坑

它只管 C++ 类与反射层的基础,蓝图可视化逻辑、输入绑定、AI 逻辑请交给对应的技能。几个容易踩的坑:裸 UObject* 不加 UPROPERTY 会被 GC 误回收(UE5 里用 TObjectPtr);重写 BeginPlay/Tick 忘记调用 Super:: 会跳过引擎初始化;改了 UCLASS/UPROPERTY 却只依赖 Live Coding,改动不会生效。

使用场景

  • 为 UE5.4+ 项目创建自定义角色 C++ 类时,需要正确编写 UCLASS 宏、类名前缀与构造函数中的组件创建
  • 设置 GameMode 的默认类(Pawn、HUD)时,需要理清 Gameplay Framework 各基类的职责边界
  • 用 UPROPERTY/UFUNCTION 暴露属性与行为给蓝图时,需要处理 GC 追踪与接口可见性
  • 调用 EnhancedInput 等模块 API 遇到链接错误时,需要在 .Build.cs 中补充模块依赖

适合人员

  • UE5 C++ 游戏程序员,需要为项目编写可被蓝图调用的 Actor 与 Component 类
  • 从蓝图转向 C++ 的玩法程序,想弄清 Gameplay Framework 中 AGameModeBase/APawn/APlayerController 的职责分工
  • 游戏开发团队的技术负责人,需要审查新成员提交的 UE5 C++ 类是否遵循反射宏与命名前缀规范
  • 编写 UE5 教学材料或内部规范的工程师,需要一份关于 UE5 游戏 C++ 常见错误的核对清单