游戏开发
UE4:四种加载资源的方式
转自:https://blog.csdn.net/zhangxsv123/article/details/79707686
第一种: 如果该蓝图有C++类(或者说是从C++类创建的蓝图),直接进行加载
ATemp* spawnActor = GetWorld()->SpawnActor(ATemp::StaticClass());
所有的加载资源并创建到场景中的方式都离不开SpawnActor这一句代码.如果你的蓝图包含了C++类,那么可以直接访问类的StaticClass
剩下的加载方式均是单纯的加载蓝图,并没有对应的C++类
第二种: 通过ConstructorHelpers来加载
static ConstructorHelpers::FClassFinder bpClass(TEXT("/Game/BluePrint/TestObj"));if(bpClass.Class !=NULL)
{
GetWorld()->SpawnActor(bpClass.Class);
}
FClassFinder是一个结构体,其中的Class成员变量是TSubClassof类型的.所以我们只需要SpawnActor(bpClass.Class)就可以生成我们要的东西了
但是值得一提的是该方法只能在类的构造函数中使用,如果在普通的逻辑代码中嵌套这份代码,很可能引起整个编译器的crash.以下是该代码的具体执行步骤
structFClassFinder
{
TSubclassOfClass;
FClassFinder(const