본문 바로가기
게임프로그래밍/TheZombie

게임 개발 - 데이터 테이블(1)

by 설련 2022. 2. 7.

오늘은 아직도 고민 중인 아이템 테이블을 구현해보려고 했다.

게임 속에서 변경가능한 상수를 코드 영역에서 처리하는 것은 불편할 수 있다.

변경할 때마다 하나하나씩 변경될 수 있도록 조건부를 걸어서 일일이 제어해야만 하기 때문.

그렇기에 데이터 테이블을 두어 쉽게 참조할 수 있도록 구현하는 것이다.

 

상속의 형태로 Weapon과 Gun을 구별했다.

왜냐하면 테이블은 베이스가 될 것이고, Input은 커스텀이 될 것이기 때문이다.

USTRUCT(BlueprintType)
struct FItemData : public FTableRowBase
{
    GENERATED_BODY()
 
public:
    FItemData(){};
  
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        FText FlavorText;
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        int32 MaxCount;
};
 
USTRUCT(BlueprintType)
struct FWeaponData : public FItemData
{
    GENERATED_BODY()
 
public:
    FWeaponData() {};
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        float Damage;

   UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
       int32 Durability;
 
};
 
USTRUCT(BlueprintType)
struct FGunData : public FWeaponData
{
    GENERATED_BODY()
 
public:
    FGunData() {};
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        float Recoil;
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        int32 MaxAmmo;
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        int32 CurAmmo;
 
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Data)
        float AmmoSpeed;
};

 

 

GunData를 기준으로 생성해보면

상속처리가 확실히 되었음을 볼 수 있다.

댓글