加载资源
在UE4中,项目中的所有资源文件,不要看做是文件,而要理解为“静态对象”:也就是对象序列化的产物。加载项目资源可以使用“UObject::StaticLoadObject()”函数,其中重要的参数为对象的Name,而不是文件路径。UE底层提供文件读取功能,无论资源文件是存储我独立的.uasset文件,还是存储到.PAK文件中,对于上层都不需要关心。
UStaticMesh* pTestMesh = Cast<UStaticMesh>(StaticLoadObject(UStaticMesh::StaticClass(),
NULL,
TEXT("/Game/Assets/StaticMeshes/SM_Vase"))
);
创建对象
CreateDefaultSubobject
-
必须写在Actor的无参构造函数中,否则crash;
-
TEXT或者FName参数在同一个Actor中不能重复,否则crash;
NewObject
如果你有UObject的派生类(非Actor、非ActorComponent),那你可以使用NewObject()模板函数来创建其实例对象。
MyObject = NewObject<UMyObject>();
SpawnActor
AMyActor* MyActor = World->SpawnActor<AMyActor>(pos, FRotator::ZeroRotator);