fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2022年10月 | ARCHIVE-SELECT | 2022年12月

| PAGE-SELECT |

≫ EDIT

UE5/UE4 C++で配置されているすべてのアクター(Actor)から特定クラスのアクター(Actor)を取得する(UGameplayStatics::GetAllActorsOfClass、AActor::StaticClass)

C++で配置されているすべてのアクター(Actor)から特定クラスのアクター(Actor)を取得する方法です。

こちらを参考にさせていただきました。

・UE4 c++でLevelに配置されているの他Actorを検索する
https://qiita.com/wisp/items/03c3a1b5483fa0a5e617

配置されているすべてのアクター(Actor)から特定クラスのアクター(Actor)を取得するには
「UGameplayStatics::GetAllActorsOfClass」関数
を使えばいいようです。

というわけで実際にやってみます。

// 指定したクラスのアクターを取得
TArray< TObjectPtr< AActor>> aActorList;
UGameplayStatics::GetAllActorsOfClass(this, ANewActor::StaticClass(), aActorList);

「AActor::StaticClass()」といった特定のクラスを指定することで
そのクラスのアクターリストを取得することができます。

取得したアクターリストは「AActor」のままなので「Cast」をして使うことになります。

// リストのアクターすべて
for(TObjectPtr< AActor> aActor : aActorList){

// 取得したクラスにキャスト
TObejctPtr< ANewActor> aNewActor = Cast< ANewActor>(aActor );
}


処理負荷的にあまり多用するような処理ではありませんが、
なにかしらのタイミングやデバッグ用途で使うタイミングがあるのではないかなと思います。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |