DataTable - osy9611/ProjectPT GitHub Wiki
Unity์์ ์ฌ์ฉํ๋ TableGenerator๋ฅผ ์ธ๋ฆฌ์ผ์ DataTable ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ๋ฐ์ดํฐ ์๋ํ๋ฅผ ์ํ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค
Unity์์ ์ฌ์ฉํ๋ ๋ฐฉ์
- ์์
ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ +
.byteํฌ๋งท ํ์ฉ - Json/XML ๋์
.byteํฌ๋งท์ ์ฌ์ฉํ์ฌ ์ต์ ํ
Unity์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ณผ์

Unity์์ .byte ํฌ๋ฉง์ ์ฌ์ฉํ ์ด์
| ํญ๋ชฉ | JSON/XML ๋ฐฉ์ |
.byte ๋ฐฉ์ |
|---|---|---|
| ์๋ | ๋๋ฆผ (ํ์ฑ ํ์) | ๋น ๋ฆ (๋ฉ๋ชจ๋ฆฌ ๋งคํ) |
| ์ฉ๋ | ์๋์ ์ผ๋ก ํผ | ์์ถ ๊ฐ๋ฅ (์ฉ๋ ์ ๊ฐ) |
| ๋ก๋ ๋ฐฉ์ | ํ ์คํธ ๊ธฐ๋ฐ ํ์ฑ | ๋ฐ์ด๋๋ฆฌ ์ง๋ ฌํ |
Unreal DataTable ํ์ฉ์ ์ฅ์
- CSV, JSON ํ์ผ์ ๋ฐ๋ก ์ฝ์ด ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅ
- ๋ธ๋ฃจํ๋ฆฐํธ์์๋ ์์ฝ๊ฒ ํ์ฉ ๊ฐ๋ฅ
Unreal์์ ์ฌ์ฉํ ๋ฐ์ดํฐ ํ ์ด๋ธ ํ์
-
Unreal์์ ์ฌ์ฉํ ๋ฐ์ดํฐ ํ ์ด๋ธ ํ์ (CSV ์์)
tableNo itemID Amount int int int 1 101 10 -
CSV ํ์ผ โ DataTable ๋ณํ ๊ณผ์

TableGenerator ๋ CSV ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก DataTable๋ก ๋ณํํ๊ณ , C++ ํด๋์ค๋ฅผ ์๋ ์์ฑํ๋ ํ๋ฌ๊ทธ์ธ ์ด๋ค.
TableGenerator ์ ์ฉ ๊ณผ์
-
CSV ๋ฐ์ดํฐ โ DataTable ์๋ ๋ณํ
-
DataTable์ ๊ธฐ๋ฐ์ผ๋ก C++ ์ฝ๋ ์๋ ์์ฑ
-
TableGenerator ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ

Make Data Table(์๋ ์์ฑ ์์คํ )
-
CSV ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ ๋ฐ์ดํฐ ํ ์ด๋ธ ์์ฑ
-
๊ฐ ์ปฌ๋ผ์ ๋ถ์ํ์ฌ C++ ๊ตฌ์กฐ์ฒด (Struct) ๋๋ Enum์ ์๋ ์์ฑ
-
ํ์ด์ฌ ์ฝ๋ ์ผ๋ถ(CSVโEnum ๋ณํ)
import csv def generate_enum_from_csv(csv_file): with open(csv_file, newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: print(f"enum {row[0]} = {row[1]};")
Import CSV Data(๋ฐ์ดํฐ ์ง๋ ฌํ & ์๋ ๋ก๋)
- DataTable์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์
.byteํ์ผ๋ก ์ ์ฅ -
.byteํ์ผ์ ๋ก๋ํ ์ ์๋๋ก ํจํค์ง ์ค์ ์ ์ฉ - ํจํค์ง ์ ์ฉ ๋ฐฉ๋ฒ
- ํ๋ก์ ํธ ์ธํ
โ ํจํค์ง โ ๊ณ ๊ธ โ ํจํค์ง ์ถ๊ฐ ๋น์์
๋๋ ํฐ๋ฆฌ์
.byteํ์ผ์ด ์ ์ฅ๋ ๊ฒฝ๋ก ๋ฑ๋ก ํ์
- ํ๋ก์ ํธ ์ธํ
โ ํจํค์ง โ ๊ณ ๊ธ โ ํจํค์ง ์ถ๊ฐ ๋น์์
๋๋ ํฐ๋ฆฌ์
TableGenerator๋ฅผ ๊ตฌํํ๋ ๊ณผ์ ์์, Unreal5 ์ต์ ๋ฒ์ ์ ์ง๋ ฌํ ๋ฐฉ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๊ธฐ์กด FAchive ๊ธฐ๋ฐ ์ง๋ ฌํ ๋ฐฉ์์์ ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ์ํ ์ค๋ฅ ๋ฉ์์ง
FArchive does not support FObjectPtr serialization. Use FArchiveUObject instead.๋ฌธ์ ์์ธ ๋ถ์
-
.byte๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณผ์ ์์,FObjectPtrํ์ ์ ์ง๋ ฌํ ์ ์ค๋ฅ ๋ฐ์ -
Unreal 5 ์์๋ ๊ธฐ์กด FArchive๋ฅผ ํตํFObjectPtr ์ง๋ ฌํ๊ฐ ์ง์๋์ง ์์
-
ํด๊ฒฐ ๋ฐฉ๋ฒ : FObjectAndNameAsStringProxyArchive ์ ์ฉ
TArray<uint8> BinaryData; FMemoryWriter MemoryWriter(BinaryData, true); FObjectAndNameAsStringProxyArchive Ar(MemoryWriter, false);