代码分析
代码检查
除了检查 C++ 代码常规方面的数百项 代码检查外,还有一些特定于 Unreal Engine 项目的检查。
UnrealHeaderTool(2 个检查)
Unreal Engine(20 个检查)
此类别中的检查是特定于 Unreal Engine项目的。
检查 | |
|---|---|
不存在此名称的操作 | |
不存在此名称的轴 | |
BlueprintCallable 函数可以设为 const | |
BlueprintCallable 函数可以设为 static | |
BlueprintCallable 函数从未在 Blueprint 或 C++ 代码中使用 | |
BlueprintImplementableEvent 函数未在任何 Blueprint 中实现 | |
未找到 C/C++ 标准库头文件 | |
Unreal Engine UCLASS 命名不一致 | |
绑定到委托的方法未使用 UFUNCTION 宏标记 | |
缺少对父类函数的调用 | |
非 UProperty 对象成员可能在垃圾回收期间被销毁,导致指针失效 | |
存储在非 UProperty 成员中的对象可能在垃圾回收期间被销毁,导致指针失效 | |
未找到指定版本的引擎项目 | |
结构体缺少 TStructOpsTypeTraits 所需的成员 | |
UFUNCTION 宏调用无效 | |
Unreal Engine 源文件缺少预定义的 Unreal 宏 | |
Unreal Engine 版本文件不存在 | |
UPROPERTY 宏调用无效 | |
使用了未先声明的类 |
UnrealHeaderTool 集成
UnrealHeaderTool 是一个用于 Unreal Engine 的解析和代码生成工具。 在 Unreal Engine 的代码编译工作流中,该工具会解析 C++ 头文件,查找与 Unreal 相关的宏和元数据,并利用这些信息生成额外的代码,以支持 UObject 系统,例如反射和网络功能。
JetBrains Rider 提供与 UnrealHeaderTool 的无缝集成:首次构建 Unreal Engine 项目时,JetBrains Rider 会找到用于代码编译的 UnrealHeaderTool,然后可以在后台作为单独的进程运行该工具,以检查您正在编辑的文件,并显示您通常在编译时会看到的相同错误和警告。 代码分析结果直接显示在编辑器中,就像其他 JetBrains Rider 的检查一样。
JetBrains Rider 仅对当前打开的文件运行 UnrealHeaderTool,并且该过程经过优化,对整体性能的影响最小。
观看此视频,了解集成的 UnrealHeaderTool 检查的实际效果:
UnrealHeaderTool 检查
UnrealHeaderTool 可以检测到代码中的许多不同问题,例如使用特定元标签但缺少所需的反射说明符,在私有作用域中使用 GENERATED_BODY 宏,或者将无效实体暴露给 Blueprint 等。 以下是一些示例:
在
UFUNCTION上缺少反射说明符。
在结构体中使用
UFUNCTION宏。
无效的
BlueprintType枚举基类。
要区分 UnrealHeaderTool 检查和 JetBrains Rider 的检查,您可以查看检查消息中附加的方括号内的检查名称。
配置 UnrealHeaderTool 检查
所有 UnrealHeaderTool 检查都有相应的 可配置严重性级别 ,您可以 根据需要进行调整。
与内置检查一样,您可以使用检查上下文菜单 快速更改 UnrealHeaderTool 检查的严重性, 通过注释抑制它 (在特定范围内或全局),或 查找并调查所有类似问题。
