【UnrealEngine】アクタにコンポーネントを追加するには【C++】
C++アクタを作成してワールド内に配置すると、コンポーネントを持っていないことが分かります。

詳細タブの追加ボタンから各種コンポーネントを追加することができるにはできます。
しかしC++はそのアクタの基本構造(設計図)を作ることが主の目的となるのでコンポーネントの設定はコードで記述することが大事になります。
と聞きました!

ということでコードでコンポーネントをアクタに設定していきたいと思います。
動画のように配置した時点でコンポーネントを持たせることが目的ですね。(ルートも持たせます)
新規C++アクタを作成したらコード記述に移ります。
まずは各種コンポーネントにアクセスできる変数をヘッダーファイルで作成していきます。

このコードをブロック内に追加してます!
C++ Example
public:
UPROPERTY(VisibleAnywhere)
USceneComponent* Root;
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* Mesh;
UPROPERTY(VisibleAnywhere)
USkeletalMeshComponent* SkeletalMesh;
続いてソースファイルにコードを記述していきます。
コンポーネントを生成して、ルートにアタッチして完成ですね

このコードをブロック内に追加してます!
C++ Example
Root = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
RootComponent = Root;
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
Mesh->SetupAttachment(Root);
SkeletalMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("SkeletalMesh"));
SkeletalMesh->SetupAttachment(Root);
ここまできたら後はアクタを配置して確認してみてください。
ゲーム内に配置した時点でコンポーネントが追加されていたら大成功です。
これがかければ型を変えるだけで他の種類のコンポーネントを追加することができるので覚えておいて損はないですね。
【追伸】コンポーネントの種類によっては対応したインクルードの記述が必要な模様・・・
ちなみに作成したアクタを継承したブループリントを作成するともちろんコンポーネントが追加されてます。

ここまでで以上となります。
本日もお疲れさまでした!
