结构体:
要继承 FTableRowBase
才可以被数据表格获取
USTRUCT(BlueprintType)
struct FST_EnemyState : public FTableRowBase
{GENERATED_BODY()UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName="序号") int Index;UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName="名称") FString Name=TEXT("敌人");
};
就选择刚创建的结构体
数据表格添加写数据
C++里写个函数在BeginPlay()执行就行了
UDataTable* const UserInfoDataTable = LoadObject<UDataTable>(this, TEXT("DataTable'/Game/1game/enemy/Kuluo/Table_Enemy.Table_Enemy'"));if (UserInfoDataTable){//输出所有的名称for (FName RowName : UserInfoDataTable->GetRowNames()){UKismetSystemLibrary::PrintString(GetWorld(), RowName.ToString());FST_EnemyState* TestInfo = UserInfoDataTable->FindRow<FST_EnemyState>(RowName,TEXT("Index"));if (TestInfo){UKismetSystemLibrary::PrintString(GetWorld(), TestInfo->Name);}}//输出所有的名称for (auto it : UserInfoDataTable->GetRowMap()){FString RowName = (it.Key).ToString();FST_EnemyState* UserInfo = (FST_EnemyState*)it.Value;UKismetSystemLibrary::PrintString(GetWorld(), FString::Printf(TEXT("%s %s"), *RowName, *UserInfo->Name));}//读一条数据FST_EnemyState* TestInfo = UserInfoDataTable->FindRow<FST_EnemyState>(TEXT("2"),nullptr);if (TestInfo){UKismetSystemLibrary::PrintString(GetWorld(), TestInfo->Name);}}else{UKismetSystemLibrary::PrintString(GetWorld(), TEXT(" Not Find DataTable!"));}
本文发布于:2024-01-28 03:03:26,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063822104313.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |