Agent Skills
返回列表
💻

虚幻引擎 C++ 进阶

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/unreal-engine-cpp-pro。

技能介绍

你在 UE5 C++ 里常踩的坑

Actor 里裸存的 UObject* 没被 GC 追踪、Tick 里反复 GetComponentByClass、硬引用把整包资源链进内存——这些在蓝图里不明显,换成 C++ 就会变成泄漏、卡顿或加载顺序灾难。本技能面向 Unreal Engine 5.x 的 C++ 工作流,帮助你在写 Actor、Component、UObject 派生类时,把 Epic 编码标准 和引擎机制对齐,而不是凭直觉堆代码。

技能会怎么引导你

  • 生命周期与 GC:强调 UPROPERTY() 包裹成员指针、IsValid() 与 nullptr 的差异,以及在需要根引用时的 TStrongObjectPtr / addToRoot() 取舍。
  • 反射与蓝图边界:用 UCLASS / USTRUCT / UFUNCTION 暴露类型;对不应被关卡蓝图改写的状态,优先 BlueprintReadOnly 而非到处 BlueprintReadWrite。
  • 性能习惯:默认关 Tick,用热路径外缓存引用替代循环里 Cast();数据密集逻辑倾向 F 结构体而非多余 UObject。
  • 资源与解耦:组件查找放在 PostInitializeComponents / BeginPlay;大型类型用 TSoftClassPtr / TSoftObjectPtr 避免硬 TSubclassOf 拖垮加载链;接口(如 IInteractable)拆分系统。
  • 调试与合入前自检:自定义 UE_LOG 分类、可视化日志,以及 PR 前清单(Tick 是否必要、委托是否在 EndPlay 清理等)。

不适用与注意点

纯蓝图、无 C++ 的项目不必套这套约定;5.x 之前的引擎版本或非 Unreal 引擎也不在本技能范围内。技能不会替你写完整游戏架构,而是把命名前缀(U/A/F/E/b 等)、反射暴露和性能默认值当成可执行的工程纪律。

使用场景

  • 在 UE5 新功能里编写 Actor/Component 派生类,按规范在 BeginPlay 缓存组件并默认关闭 Tick。
  • 线上或本地崩溃指向 UObject 野指针,需核对成员是否用 UPROPERTY 被 GC 正确追踪。
  • 实现需被关卡蓝图调用的 C++ API,用 UFUNCTION 暴露同时用 BlueprintReadOnly 保护内部状态。
  • 策划配置的大型角色或关卡资源导致加载卡顿,需把硬 TSubclassOf 改成软引用异步加载。

适合人员

  • 维护 UE5 玩法 C++ 模块、希望在日常提交里对齐 Epic 前缀命名与反射暴露规范的游戏程序员
  • 把 Tick 内 Cast/GetComponent 热路径迁到 C++ 并做性能收敛、同时保留蓝图可调入口的 gameplay 工程师
  • 负责 5.x 项目内存与生命周期问题排查、需要 GC/委托清理检查清单的技术负责人或引擎向开发者
  • 搭建交互或模块化玩法系统、倾向用接口与 TSoftObjectPtr 控制资源加载链的 Unreal 客户端开发者