執筆バージョン: Unreal Engine 4.26
|
UObjectをベースとしたBlueprintでは、GetAllActorsOfClass等のWorldContextを要求する関数群を用いることができません。
UObjectを直接継承したBlueprintのグラフ上でGetAllActorsOfClassを使おうとすると下のように見つからず、使用できません。

fig 01. UObjectを継承したBlueprintClassの場合
こういった関数を使用するにはC++でUObjectを継承したベースクラスを作成し、それについて
- クラス属性にShowWorldContextPinを指定する
- GetWorld()関数をオーバーライドする
のいずれかが必要です。
1.については別の記事(ここ)にて触れられています。WorldContextがピンとして追加された上で使用可能になります。
2.の場合、アクター等の場合と同様に使えるようになります(WorldContextにGetWorld()の結果が自動的に割り当てられる)。

fig 02. GetWorldをオーバーライドしたベースクラスを用いた場合

fig 03. ノードも普通に配置されます
注意:
ここで用いたベースクラスの定義はこのようになっています。

GetWorldの中で単に return null としていますが、このままではWorldContextの使用箇所を実行時にWarningが出力され、かつ動作しません。
Actorか何かに対するGetWorld()の結果を戻す等の実装が必要です。