原标题:UE4资源加载方式
引用资产
ue4 提供了许多种机制来控制引用资产的方式并通过扩展将其装入内存。这些引用分为两种方式:硬性引用,即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载;软性引用,即对象 A 通过间接机制(例如字符串形式的对象路径)来引用对象 B。下面的前两个小节阐述硬性引用,而其余小节探讨软性引用。
直接属性引用
这是最常见的资产引用情况,并通过 UPROPERTY 宏公开。面板会公开一个UPROPERTY。
UPROPERTY(EditDefaultsOnly, Category=Building)
USoundCue* ConstructionStartStinger;
构造时引用
使用特殊类 ConstructorHelpers 加载,这个类在构造阶段查找某个对象的对象和类。
在以上构造函数中,ConstructorHelpers 类将尝试在内存中查找该资产,如果找不到,则进行加载。请注意,使用资产的完整路径来指定要加载的内容。如果该资产不存在或者由于出错而无法加载,那么该属性将设置为 nullptr。UPROPERTY 的声明与前面的硬性引用示例相同。它们的工作方式相同,只不过是最初的设置方式有所差别。有关硬性引用的一个注意事项是,当对象加载并实例化时,以硬性方式引用的资产会自动加载,可能导致内存使用量迅速增加。
间接属性引用
间接引用有两种方式FStringAssetReferences和TAssetPtr。FStringAssetReference 是一个简单的结构体,包含了一个具有资源完整名称的