在虚幻冲处理资源分为:类资源和非类资源。
资产加载到内存中,需要通过引用完成。
引用分两种:硬性引用,软性引用。
1.硬性引用:即对象A引用对象B,并导致对象B在对象A加载时加载。
2.软性引用:既对象A通过间接机制来引用对象B。
什么是引用?
答:对于资产在内存当中的存储的一种操作方式。
硬性引用写法:
.h头文件
UPROPERTY(EditDefaultsOnly)
UClass * 变量名;
.cpp文件
GetWorld()->GetWorld()->SpawnActor(变量名)
//此变量名为.h文件UClassd 变量名
构造函数加载
在构造函中可以借助构造函数资产加载进行资产引用,更加方便便捷。
静态资源引用类ConstructorHelpers可以进行类引用,资源引用。
ConstructorHelpers只能在构造函数使用
常用资源分类
FClassFinder:常用来加载创建后的蓝图对象。
FObjectFinder:用来加载各种资源,如音频,图片,材质,静态网格。
用法
static ConstructorHelpers::FObjectFinder<UPaperFlipbook>资源名(TEXT("目录"));
//判断是判断是否存在
if (资源名.Object)
{
组件->SetFlipbook(组件.Object);
}
目录获取方式:
对着想要获取的资源右键->赋值引用即可
构造函数加载注意!
1.ConstructorHelpers只能在构造函数中使用!
2.如果加载失败或者未找到资源,对象内的资产属性为Null
3.构造加载属于软引用但也有点硬性
查找加载:软引用
LoadObject:加载资产,可直接返回资源有效对象的指针。
LoadClass:返回操作类,非对象返回UClass类型指针。
LoadClass主要用来加载类
LoadObject和LoadClass 可控性强不必只在构造函数内加载
所有资产不一定百分百加载成功所以必须启用安全检查