오늘은 아직도 고민 중인 아이템 테이블을 구현해보려고 했다.
게임 속에서 변경가능한 상수를 코드 영역에서 처리하는 것은 불편할 수 있다.
변경할 때마다 하나하나씩 변경될 수 있도록 조건부를 걸어서 일일이 제어해야만 하기 때문.
그렇기에 데이터 테이블을 두어 쉽게 참조할 수 있도록 구현하는 것이다.
상속의 형태로 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를 기준으로 생성해보면
상속처리가 확실히 되었음을 볼 수 있다.
'게임프로그래밍 > TheZombie' 카테고리의 다른 글
게임 개발 - 데이터 테이블(3) (0) | 2022.02.07 |
---|---|
게임 개발 - 데이터 테이블(2) (0) | 2022.02.07 |
게임 개발 - 사망 처리(2) (0) | 2022.02.07 |
게임 개발 - 공격 적용(ApplyDamage) (0) | 2022.02.07 |
게임 개발 - HP Progress Bar (0) | 2022.02.06 |
댓글