🎮Unreal4/C++

[UE4] CSV 파일 읽어서 DataTable로 만들기 : ParkourData

공대 컴린이 2023. 6. 22. 17:21
728x90

Parkour를 구현하는 과정에서 Parkour Data를 만들고 DataTable로 변환하는 과정이 필요해서 정리해보았다.

 

먼저, 행과 열을 만들어서 데이터를 전부 채운 csv 파일을 준비한다.

 

데이터가 필요한 Parkour Component 클래스에는 해당 데이터 열과 똑같은 속성들을 FParkourData라는 구조체로 저장하였고, 해당 구조체는 FTableRowBase를 상속받아야 한다.

 

구조체를 전부 작성한 뒤, 컴파일을 해야 csv 파일을 읽어서 데이터 테이블로 저장할 때 열 정보로 FParkourData를 사용할 수 있다.

 

C++ 컴파일 후 데이터 테이블을 저장할 폴더에서 CSV 파일을 임포트한다.

FTableRowBase를 상속받았다면 데이터 테이블 행 타입을 ParkourData로 선택할 수 있다.

 

그 결과 csv 파일을 성공적으로 데이터 테이블로 임포트할 수 있었다.

 

이렇게 만들어진 데이터 테이블을 ParkourComponent 클래스의 생성자에서 DataTable 변수에 저장해두었다.

 

BeginPlay 함수에서는 해당 DataTable의 GetAllRows 함수를 이용해서 모든 행을 불러오고, 읽어온 행들을 한줄 한줄 돌아가며 같은 EParkourType들의 FParkourData를 임시 배열에 저장해두었다.

 

이렇게 완성된 임시 배열은 TMap 자료형의 DataMap에 Value 값으로 추가하였고, Key값은 EParkourType으로 지정하였다.

 

최종적으로 ParkourComponent 클래스의 TMap 변수인 DataMap에 CSV파일로 읽어들여온 ParkourData들이 예쁘게 정리되었다~!

728x90