コード解析
コードインスペクション
C++ コードの一般的な側面をチェックする数百の コードインスペクションに加えて、Unreal Engine プロジェクト専用のインスペクションもあります。
UnrealHeaderTool (2 インスペクション)
Unreal Engine (20 インスペクション)
このカテゴリのインスペクションは、 Unreal Engine プロジェクトに固有です。
インスペクション | |
|---|---|
この名前のアクションは存在しません | |
この名前の軸は存在しません | |
BlueprintCallable 関数は const にすることができます | |
BlueprintCallable 関数を静的にすることができます | |
BlueprintCallable 関数はブループリントまたは C++ コードで使用されていません | |
BlueprintImplementableEvent 関数はどのブループリントにも実装されていません | |
C/C++ 標準ライブラリヘッダーが見つかりません | |
Unreal Engine の UCLASS 命名に一貫性がない | |
デリゲートにバインドされたメソッドは UFUNCTION マクロでマークされていません | |
スーパークラスからの関数の呼び出しがありません | |
UProperty 以外のオブジェクトメンバーがガベージコレクション中に破棄される可能性があり、その結果、古いポインターが発生する | |
非 upproperty メンバーに格納されたオブジェクトは、ガベージコレクション中に破棄される可能性があり、その結果、古いポインターが発生します | |
エンジンプロジェクトの指定されたバージョンが見つかりません | |
構造体に TStructOpsTypeTraits に必要なメンバーがありません | |
UFUNCTION マクロ呼び出しは効果がありません | |
定義済みの Unreal マクロのない Unreal Engine ソースファイル | |
Unreal エンジンのバージョンファイルが存在しません | |
UPROPERTY マクロ呼び出しは効果がありません | |
以前に宣言されていないクラスの使用 |
UnrealHeaderTool の統合
UnrealHeaderTool(英語) は、UnrealEngine 用の解析およびコード生成ツールです。 Unreal Engine のコードコンパイルワークフローでは、ツールは C++ ヘッダーファイルを解析して、Unreal 関連のマクロとメタデータを探し、これを使用して、リフレクションやネットワーキングなど、UObject システムをサポートする追加のコードを生成します。
JetBrains Rider は UnrealHeaderTool とシームレスに統合されます。Unreal Engine プロジェクトを初めてビルドすると、JetBrains Rider がコードコンパイルに使用される UnrealHeaderTool を検出し、バックグラウンドでツールを別プロセスとして実行して編集中のファイルをチェックし、通常はコンパイル時に表示されるエラーや警告を表示できます。 コード解析結果は、他の JetBrains Rider のインスペクションと同様に、エディター内に直接表示されます。
JetBrains Rider は、現在開いているファイルに対してのみ UnrealHeaderTool を実行し、プロセスは全体的なパフォーマンスへの影響を最小限に抑えるよう最適化されています。
統合された UnrealHeaderTool インスペクションの動作については、次のビデオを参照してください。
UnrealHeaderTool インスペクション
UnrealHeaderTool は、必要なリフレクション指定子なしで特定のメタタグを使用する、プライベートスコープで GENERATED_BODY マクロを使用する、無効なエンティティがブループリントに公開されるなど、コードに関するさまざまな問題を検出できます。 ここではいくつかの例を示します。
UFUNCTIONにリフレクション指定子がありません。
構造体内で
UFUNCTIONマクロが使用されています。
無効な
BlueprintType列挙型ベースです。
UnrealHeaderTool チェックと JetBrains Rider のインスペクションを区別するには、インスペクションメッセージに追加された角括弧内のチェック名を確認してください。
UnrealHeaderTool インスペクションの構成
すべての UnrealHeaderTool インスペクションには対応する 構成可能な重要度レベルがあり、 ニーズに合わせて調整できます。
組み込みのインスペクションと同様に、インスペクションコンテキストメニューを使って UnrealHeaderTool チェックの重大度をすばやく変更したり、 コメントで抑制したり(特定のスコープまたはグローバル)、 同様の問題をすべて見つけて調査できます。
