UnrealでEditor拡張 メモ

EditorモジュールからRuntimeの方で定義しているクラスなどを#includeするとき
Editroモジュールの方のbuild.csに
PrivateDependencyModuleNames.AddRange(new string[] { ... "MyProject" });
を追加して

#include "UTestClass.h"
ではなく
#include "MyProject/private/UTestClass.h"
のように記述する必要がある
RiderEditor上だとエラーは出ないが
コンパイルに失敗する。

他のモジュールも同様のハズ

UnrealでEditor拡張 AssetActionUtility

この記事ではUnrealEngine5.3を使用しています。

AssetActionUtilityを使用してAssetを右クリックして項目を追加する拡張が便利だったので
C++で作成したクラスを継承してBluePrintで使おうとしたときに気がついが事をメモ。

RuntimeのクラスでAssetActionUtilityを継承しても
BluePrint側にParent対象のクラスとして出てこない

C++の新しいクラス追加時にAssetActionUtilityを親クラスに指定できますが
ここでRuntimeを指定して作ってしまうと
BluePrint側にParent対象のクラスとして出てきません。

これを解決するためにはEditorを指定する必要があります
新規プロジェクトで外部からプラグインなどを一切入れていない場合
Editorが選択肢に出てこない場合があります。

これを解決するためにEditorを指定したモジュールを追加する必要があります。

モジュールの追加について
株式会社ヒストリア様のこちらの記事が参考になりました。
[UE4] モジュールについて

Editorモジュールを追加後Blueprintから作成したクラスが指定できるようになりました。

余談
作成したBluePrintもEditorでしか使用しないのはどうやってマークするのだろうか…
UnityのEditorフォルダみたいな機能があるのか…