UE4单例类的应用-新闻详情

UE4单例类的应用


发布时间:2017-11-28责任编辑:朱明 浏览:2264


在实际开发中,有时候会需要读取写入可以全局访问的数据,此时有两个方法解决这个问题。一个是使用GameSave,进行全局访问。另一个方法便是使用单例类进行全局访问,UE4单例类使用与标准C++不同,需要以下步骤:

一、      创建一个新的集成自ObjectC++

UE4单例类的应用1.png

二、      编写该C++类的内容

UCLASS(Blueprintable, BlueprintType)

class HELLOCODE_API USolusDataSingleton : public UObject

{

GENERATED_BODY()


public:

USolusDataSingleton();

 

//初始化资源表

UFUNCTION(Category = "DataTable", BlueprintCallable)

void InitResourceTableMap();

};

三、      新建一个蓝图函数库类

UE4单例类的应用2.png

添加函数

//获得单例类

UFUNCTION(Category = "FunctionLibrary",BlueprintPure)

static USolusDataSingleton* GetSolusData(bool& IsValid);

 

USolusDataSingleton* UMyBlueprintFunctionLibrary::GetSolusData(bool& IsValid)

{

IsValid = false;

USolusDataSingleton* DataInstance = Cast<USolusDataSingleton>(GEngine->GameSingleton);

 

if (!DataInstance) return NULL;

if (!DataInstance->IsValidLowLevel()) return NULL;

 

IsValid = true;

return DataInstance;

}

四、      在项目设置页面配置单例类

UE4单例类的应用3.png

五、      在蓝图中即可进行调用

UE4单例类的应用4.png



战国工作室   供稿