fc2ブログ

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

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

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

| PAGE-SELECT |

≫ EDIT

UE5/UE4 C++でアクター(Actor)が持つコンポーネント(Component)をクラス(Class)を指定して取得する(GetComponentByClass、GetComponentsByClass、UComponent::StaticClass)

C++でアクター(Actor)が持つコンポーネント(Component)をクラス(Class)を指定して取得する方法です。

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

・UE4 コンポーネント取得 子供オブジェクト取得
https://qiita.com/yukimm123/items/9623a3ace7f7f32a2c53

コンポーネントの取得は「GetComponentByClass()」関数を使います。

// アクターのコンポーネントを一つ取得
TObjectPtr< AActor> aActor;
TObjectPtr< UActorCompoent> aComponent = aActor->GetComponentByClass(UNewComponent::StaticClass());

こんな感じで「Actor」が持つ「Component」を一つだけ取得することができます。
取得したいクラスを「UComponent::StaticClass()」で引数に指定します。

全て取得したい場合は「GetComponentsByClass()」関数を使います。

// アクターのコンポーネントをすべて取得
TObjectPtr< AActor> aActor;
TArray< TObjectPtr< UActorCompoent>> aComponents = aActor->GetComponentsByClass(UNewComponent::StaticClass());

こんな感じで「Actor」が持つ「Component」をすべて取得することができます。

取得したコンポーネントは「UActorCompoent」になっているため、使う場合はキャストを行います、

// 取得したクラスにキャストする
TObjectPtr< UNewComponent> aNewComponent = Cast< UNewComponent>(aComponent);


結構使う頻度は多いと思うので基礎的なことですが覚えておきたいところです。

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

| PAGE-SELECT |