TIL: 유니티에서 CSV와 구글 스프레드시트를 이용한 데이터 관리 첫걸음 (2025.07.01)
오늘은 게임에 필요한 아이템 데이터를 외부 파일로 관리하는 방법을 배우고, 첫 번째 데이터 파일인 Weapons.csv를 직접 생성했다. 이 과정에서 데이터 기반 개발의 핵심 원칙과 실용적인 팁들을 익혔다.
1. 데이터 구조화: 왜 파일을 분리해야 하는가?
처음에는 모든 아이템(무기, 재료 등)을 하나의 파일로 관리할까 생각했지만, 역할별로 파일을 분리하는 것이 더 확장성에 유리하다는 것을 배웠다.
Weapons.csv: 무기 데이터만 관리Materials.csv: 재료 데이터만 관리
이렇게 파일을 나누면, 특정 종류의 아이템만 수정하거나 대량 추가할 때 작업이 명확하고 실수를 줄일 수 있다.
2. 코드와 데이터의 '약속': CSV 열(Column) 순서의 중요성
CSV 파일의 데이터는 C# 스크립트에서 정의한 순서대로 읽어들인다. 따라서 스프레드시트의 열 순서와 클래스 필드 순서를 정확히 맞추는 것이 중요하다.
현재 프로젝트의 ItemData.cs 클래스는 다음 순서를 따른다:
- A열: name (아이템 이름)
- B열: grade (아이템 등급)
- C열: count (아이템 수량/스택)
- D열: description (아이템 설명)
count 필드의 의미:
- 장비 아이템(무기 등): 스택 불가 →
1입력 (개별 아이템) - 소모품/재료: 최대 스택 수량 의미 (예: 포션은 99, 철광석은 999)
3. 유니티 연동을 위한 실전 팁과 주의사항
- 저장 위치:
Resources.Load()는 오직Assets/Resources/폴더에서만 작동한다. →Assets/Resources/CSV/와 같은 경로에 CSV 파일을 저장해야 한다. - 헤더 제거: 현재 CSV 파서를 따로 구성하지 않아, 첫 줄(제목 행)은 반드시 삭제해야 함. 안 그러면 오류 발생.
- 행 번호는 데이터가 아니다: 구글 시트에서 보이는 1, 2, 3...은 실제 파일 내용이 아님. 메모장에서 확인되는 내용만이 진짜 CSV 데이터다.
오늘의 결론
단순히 게임 내 오브젝트를 만드는 단계를 넘어, 외부 파일을 활용한 데이터 중심 개발의 첫 발을 내디뎠다. 처음에는 복잡하게 느껴졌지만, 구조를 이해하고 나니 수백 개의 아이템도 체계적으로 관리할 수 있다는 자신감이 생겼다.
다음 목표는 Materials.csv를 작성하고, 이 데이터를 기반으로 실제 게임 내 아이템을 생성하고 활용하는 시스템을 구축하는 것이다.
'팀스파르타 내일배움캠프' 카테고리의 다른 글
| [TIL]유니티 CSV 통합 파서 및 로컬라이제이션 구조 리팩토링 (0) | 2025.07.07 |
|---|---|
| [TIL]유니티 커스텀 로컬라이제이션 시스템 구축 및 디버깅 (0) | 2025.07.04 |
| [TIL] 유니티 2D 타일맵 시스템 설계 및 첫 레벨 제작 (1) | 2025.07.01 |
| [TIL] Unity 2D 타일맵 에셋 관리 및 최적화 총정리 (0) | 2025.06.30 |
| Unity Skill UI가 최적화되지 않은 문제 해결 (0) | 2025.06.17 |