UE4/C++: アクターのメンバー関数内で AActor 派生の任意のユーザー定義型のオブジェクトを列挙する方法
// TActorIterator で AActor 派生の任意のユーザー定義型のオブジェクトを列挙 // AHogePawn は列挙したい AActor 派生のユーザー定義型 // GetWorld() は AActor のメンバー関数 { auto counter = 0; for ( TActorIterator< AHogePawn > i( GetWorld() ); i; ++i ) // i は間接参照演算子によりオブジェクトのメンバーへアクセスできるイテレーター UE_LOG ( LogTemp , Log , TEXT( "enumerated AHogePawn[%d]: (name)=%s, (has abc tag)=%s" ) , counter++ , i->GetName() , i->Tags.Contains( "abc" ) ? TEXT( "true" ) : TEXT( "false" ) ); }
参考2の GetAllActorsOfClass
を使う手もあるが単純に列挙したいだけの場合は TActorIterator
を使う方がコードがシンプルで楽。