コード解析
コードインスペクション
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 システムをサポートする追加のコードを生成します。
ReSharper は UnrealHeaderTool とシームレスに統合されます。Unreal Engine プロジェクトを初めてビルドすると、ReSharper がコードコンパイルに使用される UnrealHeaderTool を検出し、その後ツールをバックグラウンドで個別のプロセスとして実行して、編集中のファイルをチェックし、通常コンパイル時に表示されるのと同じエラーや警告を表示できます。 コード解析の結果は、他の ReSharper のインスペクションと同様に、エディター上に直接表示されます。
ReSharper は現在開いているファイルのみに UnrealHeaderTool を実行し、プロセスは全体的なパフォーマンスへの影響を最小限に抑えるよう最適化されています。
統合された UnrealHeaderTool インスペクションの動作については、次のビデオを参照してください。
UnrealHeaderTool インスペクション
UnrealHeaderTool は、必要なリフレクション指定子なしで特定のメタタグを使用する、プライベートスコープで GENERATED_BODY マクロを使用する、無効なエンティティがブループリントに公開されるなど、コードに関するさまざまな問題を検出できます。 以下にいくつか例を挙げます。
UFUNCTIONにリフレクション指定子がありません。
UFUNCTIONマクロを構造体内で使用しています。
無効な
BlueprintType列挙型の基底です。
UnrealHeaderTool チェックと ReSharper のインスペクションを区別するには、インスペクションメッセージの角括弧内に追加されたチェック名を確認してください。
UnrealHeaderTool インスペクションの構成
すべての UnrealHeaderTool インスペクションには、対応する 構成可能な重要度レベルがあり、 ニーズに合わせて調整できます。
組み込みのインスペクションと同様に、インスペクションのコンテキストメニューから UnrealHeaderTool チェックの重大度をすばやく変更したり、 コメントで抑制したり (特定のスコープやグローバルで)、 同様の問題をすべて検索して調査することができます。
