[햄] 작업일기
0718 대화 내용을 엑셀 데이터로 불러오기
리리쟝
2023. 7. 18. 23:51
엑셀 데이터를 통해 대화 내용과 이름을 가져오는 작업을 진행 중이다
아래는 이전에 책을 보고 진행한 예제의 코드
#pragma once
#include "ArenaBattle.h"
#include "Engine/DataTable.h"
#include "Engine/GameInstance.h"
#include "Engine/StreamableManager.h"
#include "ABGameInstance.generated.h"
USTRUCT(BlueprintType)
struct FABCharacterData : public FTableRowBase
{
GENERATED_BODY()
public:
FABCharacterData() : Level(1), MaxHP(100.0f), Attack(10.0f), DropExp(10), NextExp(30) {}
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
int32 Level;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
float MaxHP;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
float Attack;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
int32 DropExp;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
int32 NextExp;
};
캐릭터 데이터를 받아오기 위한 구조를 선언했다
이와 동일하게, GameInstance를 상속받는 HamsterGameInstance를 만들고,
그 안에 DataTable 구조체를 만들기로 했다
(GameInstance는 게임 시작부터 종료까지 유지되어 데이터를 관리하는 데 유용함)
https://secretroute.tistory.com/entry/1409221002
USTRUCT(BlueprintType)
struct FHamsterGameData : public FTableRowBase
{
GENERATED_BODY()
public:
FHamsterGameData() : Name("StartName"), Line("StartLine"), CanTalkMore(true) {}
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
FString Name;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
FString Line;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Data")
bool CanTalkMore;
};
엑셀 파일을 csv로 변환해서 임포트 해주면 된다


CanTalkMore를 bool 로 선언해도 엑셀 내에서는 텍스트라서 제대로 인식될지 잠깐 걱정했는데, 다행히 제대로 인식된다!