게임엔진/Unreal

[블루 프린트] 데이터 테이블

CodeJB 2024. 6. 18. 00:11

Unity의 ScriptableObject와 똑같은 포지션이다.

Asset으로 관리되는 DataTable이고 자체적으로 직렬화돼있어 관리가 편하다

하지만, 소규모의 데이터테이블로는 사용하기 좋지만 전투나 아이템과 같은 대규모 데이터의 경우에는 UI적으로 관리하기가 어렵다.

 

1. Structure 생성

2. Structure에 필드 추가

각각의 필드들은 DataTable의 Column이 된다.

3. DataTable 생성

 

DataTable을 추가하면 Structure를 선택할 수 있다. 미리 만들어 놓았던 CreatureData Structure를 지정한다.

미리 만들어 놓았던 Structure의 필드들이 Datatable의 Column이 된 모습이다.

Row Name은 Key가 된다.

 

4. Data Table에 Data추가

Row Name(Knight) 키값에 따른 Structure의 필드들에 Value(flipbook)를 추가한다.

 

5. BluePrint에서 사용하기

제일 하위에 Get Data Table Row 노드를 가져온다.

해당 노드에서 만들어 두었던 CreatureDataTable을 가져오고, Row Name(Key)를 지정하여 데이터를 가져온다.

 

Row Found는 값을 찾은 경우 이어줄 Pin , Row Not Found는 값을 찾지 못하여 에러 처리를 위한 Pin이다.

Out Row에서는 결과값을 리턴해주며 Split Struct Pin으로 분리도 가능하다.

 

이제 VCreatureData Structure 타입으로 Data라는 이름의 변수를 추가하였으며,

Event BeginPlay로 게임이 시작되면 바로 Data 변수에 Knight에 대한 DataTable을 Set해준다.

기존에는 Select문에서 직접 FlipBook을 추가해주었다면

 

이제는 Data 변수에서 Get을 해와서 Select에 연결시켰다.

이제 FlipBook을 Select 노드에서 직접 바꾸는 것이 아니라

DataTable로 관리할 수 있다.