这篇博客介绍的是Fortnite中的Asset Manager逻辑,主要内容来自Fortnite的公开文档。
背景
上篇博客Unreal Engine 4 —— Asset Manager介绍过了一遍UE4中的Asset Manager操作,这篇博客以Fortnite的公开文档为例,过了一遍游戏逻辑中该如何构建Asset Manager的操作。
UPrimaryDataAsset
大多数的Primary Asset由于可能会直接被美术或策划直接修改,因此通常都会有一个在磁盘上的表现形式。常用的手法是将其继承自UPrimaryDataAsset
。通过这种手法就可以直接在引擎中添加新的Primary Data Asset,代码如下:
UCLASS(Blueprintable, hidecategories = (Object, Actor, Advanced, Navigation))
class FORTNITEGAME_API UFortZoneTheme : public UPrimaryDataAsset
{
GENERATED_UCLASS_BODY()
public:
/** Name of the zone */
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Zone)
FText ZoneName;
/** The class that is used for this theme in the new world flow */
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Visual, meta = (AssetBundles = "Menu"))
TAssetSubclassOf<class AFortTheaterMapTile> TheaterMapTileClass;
}