1 把获取物品信息改为读取数据表
先创建结构,暂时有这几个属性:
USTRUCT(BlueprintType)
struct ARPG_CPLUS_API FMyItemData:public FTableRowBase
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int ItemId;//物品Id,唯一
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int MaxOwnedCnt;//最大堆叠数量
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString ItemBaseName;//物品名称
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UTexture2D* Texture;//物品图标
};
创建对应的数据表

实现Get函数:
FMyItemData UWarehouseManager::GetItemDataByItemId(int ItemId)
{
if(!ItemDataTable)return FMyItemData();
// 获取DataTable的所有行
TArray<FName> RowNames= ItemDataTable->GetRowNames();
// 遍历每一行
for (const auto& RowName : RowNames)
{
FMyItemData* RowData = ItemDataTable->FindRow<FMyItemData>(RowName,FString(""),true);
if (RowData->ItemId == ItemId)
{
return *RowData;
}
}
return FMyItemData();
}
把原来获取Texture的地方改为用这个函数:
2 编写Bag相关代码
2.1 BagSaveData
//BagSaveData.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "BagSaveData.generated.h"
struct FMyItemInfo;
/**
*
*/
UCLASS()
class ARPG_CPLUS_API UBagSaveData : public USaveGame
{
GENERATED_BODY()
public:
UBagSaveData();
UFUNCTION(BlueprintCal

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



