unreal-engine-cpp-pro

虚幻引擎5.x C++开发专家指南,涵盖UObject规范、性能优化模式及最佳实践。

作者

安装

热度:5

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-unreal-engine-cpp-pro&locale=zh&source=copy

Unreal Engine C++ Pro

技能概述


Unreal Engine C++ Pro 提供适用于 UE5 游戏开发的专家级 C++ 编程指南,涵盖 UObject 垃圾回收、反射系统和性能优化的最佳实践。

适用场景


  • UE5 游戏开发:使用 C++ 开发 Actors、Components 和 UObject 派生类时,确保代码符合 Epic 官方标准,避免内存泄漏和性能问题。

  • 性能优化:在处理 Tick 优化、组件查找、类型转换等热路径代码时,获得具体的优化建议和代码模式。

  • Blueprint 集成:需要将 C++ 功能正确暴露给蓝图时,学习 UCLASS、UFUNCTION 等宏的正确使用方式。
  • 核心功能


  • UObject 与垃圾回收管理:提供 UPROPERTY 使用规范、TStrongObjectPtr 应用场景、IsValid 安全检查等指南,帮助避免 GC 导致的悬空指针问题。

  • 反射系统应用:详细说明 UCLASS、USTRUCT、UFUNCTION、UPROPERTY 宏的正确用法,包括 BlueprintReadWrite/ReadOnly 的选择建议。

  • 性能优化模式:覆盖 Tick 禁用策略、组件查找缓存、TSoftObjectPtr 异步加载、Cast 优化等实用技巧,提升运行时性能。
  • 常见问题

    为什么所有 UObject 指针成员都要用 UPROPERTY 修饰?


    UPROPERTY 宏会将指针注册到 Unreal 的垃圾回收系统中。如果不用 UPROPERTY 修饰,GC 可能回收该对象,导致指针变成悬空引用。这是 UE5 C++ 开发中最常见的内存泄漏来源之一。

    什么时候应该禁用 Actor 的 Tick?


    默认情况下,所有 Actor 的 bCanEverTick 应设为 false。Tick 每帧都会执行,在大型项目中会严重影响性能。如果需要定期执行逻辑,优先使用 Timer(FTimerManager)或事件驱动机制替代。

    TSoftObjectPtr 和硬引用有什么区别?


    硬引用(如 TSubclassOf)会在编译时建立依赖关系,强制资源在启动时加载,可能延长加载时间。TSoftObjectPtr 是软引用,允许异步加载,适合大型资源和可选依赖,能显著降低内存占用和启动时间。

    此技能仅适用于 Unreal Engine 5.x 版本。如果您使用的是更早的版本,部分 API 和最佳实践可能不适用。