[햄] 작업일기

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

https://kyoun.tistory.com/183

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 로 선언해도 엑셀 내에서는 텍스트라서 제대로 인식될지 잠깐 걱정했는데, 다행히 제대로 인식된다!