Unreal Cook Book:オブジェクトを作成するいくつかのポーズ(C++)


DEMOソースコード
このDEMOは、C++コードにおいて、Actor、ActorComponent、リソースのロードなど、UE 4の一般的なタイプのオブジェクトを作成することを実証している.
ソースコードはここからダウンロードしてください:https://code.csdn.net/neil3d/unrealcookbook使用するエンジンバージョンは4.11です.2
プロジェクトを開いたら、[CreateObjectDemo/CreateObjectDemoMap.umap]マップファイルを起動して実行します.
コンポーネントの作成
UE 4で、Actorのコンポーネントを作成するには、以下のようにUObject::CreateDefaultSubobject()テンプレート関数を使用します.
/* <CreateObjectDemo>
	*   Component  ,   CreateDefaultSubobject    
	*/
	MyComponent = CreateDefaultSubobject<UMyActorComponent>(TEXT("MyComponent"));

リソースオブジェクトのロード
UE 4では、プロジェクト内のすべてのリソースファイルは、ファイルと見なされるのではなく、「静的オブジェクト」、すなわちオブジェクトがシーケンス化された生成物として理解される.プロジェクトリソースをロードするには、「UObject::StaticLoadObject()」関数を使用します.重要なパラメータは、ファイルパスではなくオブジェクトのNameです.UEの最下位層は、リソースファイルが独立して記憶することにかかわらず、ファイルの読み取り機能を提供する.uassetファイルか、それとも保存するか.PAKファイルでは、上層部に関心を持つ必要はありません.
/* <CreateObjectDemo>
	*     、     ,  StaticLoadObject  
	*/
	UStaticMesh* SM_Vase = Cast<UStaticMesh>(StaticLoadObject(UStaticMesh::StaticClass(),
		NULL,
		TEXT("/Game/Assets/StaticMeshes/SM_Vase"))
		);

	StaticMeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMeshComponent"));
	StaticMeshComponent->SetStaticMesh(SM_Vase);

Actorオブジェクトの作成
以下に示すように、Actorオブジェクトを作成するには、UWorld::SpawnActor()インタフェースを使用します.
/* <CreateObjectDemo>
	 *   AActor        NewObject  new,   UWorld::SpawnActor()
	*/
	UWorld* World = GetWorld();
	FVector pos(150, 0, 20);

	AMyActor* MyActor = World->SpawnActor<AMyActor>(pos, FRotator::ZeroRotator);

UObjectオブジェクトの作成
UObjectの派生クラス(非Actor、非ActorComponent)がある場合は、NewObject()テンプレート関数を使用してインスタンスオブジェクトを作成できます.
	/* <CreateObjectDemo>
	 *   NewObject    ,   UObject     
	*/
	MyObject = NewObject<UMyObject>();