这个DEMO演示了在C++代码中,创建UE4的常见类型的对象,包括Actor,ActorComponent,加载资源等。
源代码请从这里下载:https://code.csdn.net/neil3d/unrealcookbook
使用的引擎版本为:4.11.2打开项目后,启动“CreateObjectDemo/CreateObjectDemoMap.umap”地图文件即可运行。
/* <CreateObjectDemo> * 创建Component对象,要使用CreateDefaultSubobject模板函数 */ MyComponent = CreateDefaultSubobject<UMyActorComponent>(TEXT("MyComponent"));
/* <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);
/* <CreateObjectDemo> * 创建AActor派生类对象不要用NewObject或者new,而要用UWorld::SpawnActor() */ UWorld* World = GetWorld(); FVector pos(150, 0, 20); AMyActor* MyActor = World->SpawnActor<AMyActor>(pos, FRotator::ZeroRotator);
/* <CreateObjectDemo> * 使用NewObject模板函数,来创建UObject派生类对象 */ MyObject = NewObject<UMyObject>();