데이터 테이블에 사용할 구조체 만들기

2025. 1. 27. 20:15·내배캠/Unreal Engine
Item 클래스의 데이터를 정리한다고 했을 때,
어떤 아이템이 몇 %확률로 스폰되는지를 코드로 직접 하드 코딩하면 매번 수정할 때마다 빌드를 해줘야하는 번거로움이 있다. 
언리얼 엔진의 데이터 테이블을 사용하면, 이를 엑셀(csv)나 JSON파일로 관리해서 엔진안으로 임포트하고, 코드나 블루프린트에서 쉽게 불러 쓸 수 있다.
만약 데이터의 수정이 필요하다면 기획자나 디자이너도 엑셀에서 숫자만 바꾸어, 엔진에서 reimport만 해주면 되어 편리하게 수정할 수 있다.

  • struct는 class가 아니기에 부모 클래스를 선택할 수 없다.
  • 따라서 None을 선택한다

 

#pragma once

#include "CoreMinimal.h"

class STRIKEZONE_API ItemSpawnRow
{
public:
	DefaultRow();
	~DefaultRow();
};
  • 빈 클래스를 만들면 이와 같이 나오는데, 우린 구조체를 정의할 것이므로 생성자와 소멸자 모두 삭제

 

#pragma once

#include "CoreMinimal.h"
#include "ItemSpawnRow.generated.h"

USTRUCT(BlueprintType)
struct FItemSpawnRow : public FTableRowBase
{
	GENERATED_BODY()

public:
	// 아이템 이름
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FName ItemName;
    // 스폰할 아이템 클래스
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<AActor> ItemClass;
    // 스폰 확률
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float SpawnChance;
};
  • 리플렉션 시스템에 등록해야되기 때문에, (구조체의 이름).generated.h를 추가
  • USTRUCT(BlueprintType) 추가
  • class를 struct로 변경하고, 구조체 이름 앞에 F를 붙인다.
  • 언리얼 엔진은 FTableRowBase라는 기본 구조체를 제공하며 이를 상속한 구조체를 만들면, CSV 혹은 JSON 행을 해당 구조체에서 정해준 형태로 받아올 수 있게 된다.

'내배캠 > Unreal Engine' 카테고리의 다른 글

데이터 에셋과 데이터 테이블  (0) 2025.01.28
인터페이스 기반 아이템 클래스 구현_2_아이템 스폰 및 레벨 데이터 관리  (0) 2025.01.27
DataTable 만들기(CSV, Unreal)  (0) 2025.01.27
인터페이스 기반 아이템 클래스 구현_1_인터페이스 설계  (0) 2025.01.27
Delegate  (0) 2025.01.23
'내배캠/Unreal Engine' 카테고리의 다른 글
  • 데이터 에셋과 데이터 테이블
  • 인터페이스 기반 아이템 클래스 구현_2_아이템 스폰 및 레벨 데이터 관리
  • DataTable 만들기(CSV, Unreal)
  • 인터페이스 기반 아이템 클래스 구현_1_인터페이스 설계
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    데이터 테이블에 사용할 구조체 만들기
    상단으로

    티스토리툴바