턴룸 › Design Data Table작업 결과내보내기 / 변환
기존 기록 이전원문에 기록된 작업 내용과 당시 검증 범위를 정리한 보관 기록입니다.
게임 데이터 편집기의 기존 CSV 내보내기 버튼을 내보내기 / 변환 메뉴로 바꿨습니다.
| 형식 | 내용 |
|---|---|
| XLSX | 이름·자료형 두 행, 원문 수식, 편집 메타데이터 |
| 원본 CSV | 기존 이름·자료형 두 행과 원문 수식 형식 유지 |
| TSV | 열 이름 한 행과 계산된 값. 탭·따옴표·여러 줄 셀 인용 처리 |
| JSON | 테이블 이름, 열 이름·자료형, 자료형에 맞는 계산된 행 데이터 |
| XML | 테이블·열 자료형·계산된 행 데이터. XML 문자 이스케이프 |
| ScriptableObject | 텍스트 템플릿 기반 코드와 실제 행 데이터를 가진 .asset |
원본 테이블은 내보내기 과정에서 변경하지 않습니다. 내보내기로 등록 원본을 덮어쓰는 경로는 거부하며, 원본 변경에는 저장을 사용합니다. JSON/ScriptableObject는 빈 숫자·논리값·날짜를 런타임 자료형 기본값으로 내보냅니다. JSON의 Int64는 정수 리터럴이므로 JavaScript Number로 읽는 소비자는 정밀도 처리에 주의해야 합니다.
ScriptableObject 템플릿과 데이터 삽입
- 템플릿:
Assets/DesignDataTable/Scripts/Editor/Sources/ScriptableObjectSource.txt - 코드:
Assets/DesignDataTable/Generated/Code/DataAssets/<테이블 이름>DataAsset.cs - 에셋: 내보내기 창에서 Assets 안의
.asset경로를 선택합니다. - 사용: 생성된 에셋의
Rows를 읽습니다. 각 행은 열 이름에 대응하는 자료형 필드를 가집니다.
템플릿은 /*TABLE_NAME*/, /*CLASS_NAME*/, /*ROW_CLASS*/, /*FIELDS*/, /*SCHEMA_ID*/ 치환자를 사용합니다. DateTime은 Unity 직렬화를 위해 ISO 문자열 필드에 저장하고 DateTime 속성을 노출합니다. 템플릿과 스키마가 바뀌면 새 코드의 스키마 식별자와 일치하는 컴파일이 끝난 뒤 데이터를 삽입합니다. 작업은 Library 아래 파일로 남겨 도메인 리로드 후에도 이어갑니다.
기존 같은 형식 에셋은 갱신하며, 다른 형식의 에셋이나 사용자 스크립트는 임의 덮어쓰지 않습니다. 같은 에셋에 대한 대기 중 요청은 최신 요청으로 대체합니다. 데이터 삽입 오류나 컴파일 실패는 오류를 기록하고 작업 파일을 .failed로 남깁니다. ScriptableObject를 원본으로 역변환하거나 자동 동기화하는 기능은 이번 범위가 아닙니다.
검증
- 전체 소스 컴파일 및 10,208개 회귀 검증 통과.
- JSON 한글·제어 문자·Int64·논리값·날짜, TSV 여러 줄/탭, XML 특수 문자, 계산값과 원본 수식 불변, 잘못된 내보내기 시 기존 파일 보존을 확인했습니다.
- Unity에서 템플릿의 실제 컴파일,
.asset생성과 모든 지원 자료형의 행 삽입, DateTime 접근자, 기존 에셋 갱신, 빈 테이블 재내보내기 시 이전 행 제거를 검증했습니다. 129개 통과, 오류 0개, 샘플 씬 3개 완료. 실행 기록(원문의 비공개·미보존 참조). - 9개 언어 UI·가이드와 영어 PDF를 갱신했습니다. 실제 메뉴 클릭과 팝업 배치는 별도 미검증입니다.
XERJ: 미사용 — 연결 도구가 없어 rg로 현재 소스를 확인했습니다.
원문과 편집 이력
- 원문 SHA-256:
59121d8314fe63bb72e35d4157c435ee33afc3c55bfaf16cdb3bdf1d1f1f0205 - 표시 날짜는 원본 파일의 수정 시각입니다. 작업 완료 시각은 원문에 있는 값을 기준으로 확인합니다.
Tracefolio REPORTS & ISSUES