Object实例化
1.在C++Pawn里创建Object声明(.h)
//创建Object声明
UPROPERTY()
UMyObject* MyTestObject;
1.2在C++Object里创建结构体(.h)
public:
UPROPERTY()
FMyDateTableStruct MyDateTableStruct;
1.3创建结构体函数C++Object(.h)
//创建结构体并初始化
USTRUCT(BlueprintType)
struct FMyDateTableStruct:public FTableRowBase {//行命名为MyDateTableStruct
GENERATED_USTRUCT_BODY()
FMyDateTableStruct();//写这一行(其他行在上期已写过)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyTestDataTableStruct)
float Health;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyTestDataTableStruct)
FString Name;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyTestDataTableStruct)
int32 Level;
};
1.4在Object.cpp结构体初始化(.cpp)
FMyDateTableStruct::FMyDateTableStruct(){
Health = 10.f;
Name = TEXT("zhangsan");
Level = 1;
}
GameInstance实例化
2.1新建C++ GameInstance类
2.2变量声明(MyPawn.h)
//创建游戏实例变量声明
UPROPERTY()
UMyGameInstance* MyInstance;
2.3转化(MyPawn.cpp)
//将游戏实例类转化
MyInstance = Cast<UMyGameInstance>(GetWorld()->GetFirstPlayerController()->GetGameInstance());
if (MyInstance) {
UE_LOG(LogTemp, Warning, TEXT("MyInstance is %s"), *MyInstance->GetName());
UE_LOG(LogTemp, Warning, TEXT("MyAppID is %s"), *MyInstance->MyAPPID);
UE_LOG(LogTemp, Warning, TEXT("MyUserID is %s"), *MyInstance->MyUserID);
UE_LOG(LogTemp, Warning, TEXT("MyName is %s"), *MyInstance->MyName);
}
2.4游戏实例创建构造函数并声明(MyGameInstance.h)
public:
//创建构造函数
UMyGameInstance();
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyInstance)
FString MyAPPID;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyInstance)
FString MyUserID;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyInstance)
FString MyName;
2.5在函数构造里初始化(MyGameInstance.h)
UMyGameInstance::UMyGameInstance(){
//初始化
MyAPPID = TEXT("123");
MyUserID = TEXT("456");
MyName = TEXT("wangwu");
}