1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#pragma once
#include "CoreMinimal.h" #include "Engine/Classes/Engine/DataTable.h" #include "UObject/NoExportTypes.h" #include "MyObject.generated.h"
USTRUCT(BlueprintType) struct FMyDataTableStruct: public FTableRowBase { GENERATED_USTRUCT_BODY() FMyDataTableStruct();
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyTestDataTableStruct") float Health; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyTestDataTableStruct") FString Name; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyTestDataTableStruct") int Level; };
UCLASS() class MYPROJECT2_API UMyObject : public UObject { GENERATED_BODY() public: UPROPERTY() FMyDataTableStruct MyDataTableStruct; };
FMyDataTableStruct::FMyDataTableStruct() { Health = 10.0f; Name = TEXT("zhangsan"); Level = 1; }
UPROPERTY() UMyObject* MyTestObject;
void AMyPawn::BeginPlay() { Super::BeginPlay(); TSubclassOf<UMyObject> MySubClassObject = UMyObject::StaticClass(); MyTestObject = NewObject<UMyObject>(GetWorld(), MySubClassObject); if (MyTestObject) { UE_LOG(LogTemp, Warning, TEXT("MyTestObject is %s"), *MyTestObject->GetName()); UE_LOG(LogTemp, Warning, TEXT("My Health is %f"), MyTestObject->MyDataTableStruct.Health); UE_LOG(LogTemp, Warning, TEXT("My Name is %s"), *MyTestObject->MyDataTableStruct.Name); UE_LOG(LogTemp, Warning, TEXT("My Level is %d"), MyTestObject->MyDataTableStruct.Level); } }
|