この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
wiki:ue4:tips:503 [2015/04/25 03:33] step |
wiki:ue4:tips:503 [2015/04/25 06:21] (現在) step |
||
---|---|---|---|
ライン 24: | ライン 24: | ||
- 親クラスに「Game Mode」を選択して次へ。 | - 親クラスに「Game Mode」を選択して次へ。 | ||
- 名前を「MyGameMode」として「クラスを作成」する。 | - 名前を「MyGameMode」として「クラスを作成」する。 | ||
+ | |||
+ | <sxh cpp; title: AMyGameMode.h> | ||
+ | class MYPROJECT_API AMyGameMode : public AGameMode | ||
+ | { | ||
+ | GENERATED_BODY() | ||
+ | |||
+ | private: | ||
+ | virtual void BeginPlay() override; // 追加 | ||
+ | }; | ||
+ | </sxh> | ||
+ | BeginPlay 関数をオーバーライドして、その中に生成処理を追加します。 | ||
<sxh cpp; title: AMyGameMode.cpp> | <sxh cpp; title: AMyGameMode.cpp> | ||
+ | |||
+ | #include "MyActor.h" // アクター使用 | ||
+ | |||
void AMyGameMode::BeginPlay() | void AMyGameMode::BeginPlay() | ||
{ | { | ||
ライン 43: | ライン 57: | ||
} | } | ||
+ | </sxh> | ||
+ | この時点でワールドアウトライナーに追加すると空のアクターが生成されます。 | ||
+ | 次にメッシュを生成し設定します。 | ||
+ | |||
+ | まずアクターに必要なメンバーを用意して | ||
+ | <sxh cpp; title: AMyActor.h> | ||
+ | USceneComponent* DummyRoot; | ||
+ | TSubobjectPtr<UStaticMeshComponent> MeshComp; | ||
+ | </sxh> | ||
+ | |||
+ | |||
+ | ファイルを読み込んで、コンポーネントとしてアクターにアタッチする。 | ||
+ | <sxh cpp; title: AMyActor.cpp> | ||
+ | // コンストラクタ | ||
+ | AMyActor::AMyActor() | ||
+ | { | ||
+ | PrimaryActorTick.bCanEverTick = true; | ||
+ | |||
+ | RunningTime = 0.0f; | ||
+ | |||
+ | // ダミーのルートコンポーネントを追加 | ||
+ | DummyRoot = CreateDefaultSubobject<USceneComponent>(TEXT("RootComponent")); | ||
+ | RootComponent = DummyRoot; | ||
+ | |||
+ | // メッシュコンポーネント作成 | ||
+ | MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh")); | ||
+ | |||
+ | // メッシュデータ読み込み | ||
+ | const ConstructorHelpers::FObjectFinder<UStaticMesh> MeshObj(TEXT("/Game/StarterContent/Shapes/Shape_Cylinder")); | ||
+ | |||
+ | // メッシュ設定 | ||
+ | MeshComp->SetStaticMesh(MeshObj.Object); | ||
+ | |||
+ | // ルートコンポーネントにアタッチの | ||
+ | MeshComp->AttachTo(RootComponent); | ||
+ | } | ||
</sxh> | </sxh> | ||
+ | これで表示されます。MeshObjに渡すファイルパスは頭に「/Game」を付けないとロードされないので注意すること。 | ||