💡 오늘의 작업 요약: 데이터 확장성과 시스템 안정성, 두 마리 토끼를 잡다
✅ 작업한 내용
📁 1. CSV 데이터 구조 정비 & PrefabAddress 도입
- Skills: 총 80종의 스킬을 3단계(Tier) 트리 구조로 정리
- Materials: 기존 로컬라이제이션 키를 실제 텍스트로 대체 (디버깅/테스트 시 가독성 향상)
- Armor / Weapons: 동료 전용 장비 추가, 전체 데이터 구조를 통일
- PrefabAddress 컬럼 공통 추가: 추후 Addressable Asset System 도입을 대비하여 모든 아이템 데이터에
PrefabAddress컬럼을 삽입
🔧 2. Teleporter 리팩터링 (4단계에 걸친 개선)
- 1단계: Tag → LayerMask, bool → Coroutine으로 교체 (기초 개선)
- 2단계: 코루틴 중단 문제를 인지하고
OnTriggerExit()기반 상태 전이 구조로 변경 - 3단계:
TeleporterManager도입으로 텔레포터 상태 중앙 관리 - 4단계:
PlayManager가 모든 텔레포터 상태를 제어할 수 있도록 API (ToggleAllTeleporters,ResetAllStates) 설계
🤔 문제 상황 & 해결
문제 1. Addressable 시스템 도입 전 CSV 구조 미정
해결: PrefabAddress 컬럼을 미리 넣어두고 Null 값 처리. 향후 시스템 확장 시 빠르게 연동 가능하도록 준비 완료
문제 2. Teleporter가 비활성화될 경우 코루틴 중단
해결: 코루틴에 의존하지 않고, OnTriggerEnter / OnTriggerExit 기반 상태 전이로 리팩터링
문제 3. 텔레포터마다 상태를 따로 관리하면서 생기는 동기화 이슈
해결: TeleporterManager에서 모든 텔레포터를 일괄 등록 및 상태 일괄 제어 구조로 재설계
문제 4. 다른 시스템에서 텔레포터를 직접 통제할 수 없음
해결: PlayManager가 직접 제어 가능한 API를 제공하여 상위 시스템과의 연동성 확보
📌 오늘 배운 점 / 인사이트
- 데이터 설계는 지금만 보는 것이 아니라 '나중'을 준비하는 행위다.
- 시스템은 코드를 잘 짜는 것 이상으로, Unity의 생명주기와 상태 변화를 이해하는 것이 중요하다.
- 매니저 패턴은 단순한 구조가 아니라, 모듈 간 책임을 분리하고 유지보수를 쉽게 하는 핵심 도구다.
- 상위 시스템이 하위 시스템을 제어할 수 있도록 구조를 설계해야, 유연하고 안정적인 아키텍처를 만들 수 있다.
📁 기타 메모
PrefabAddress값은 추후 Addressable 시스템에서 자동 매핑하는 방식으로 구현 예정TeleporterManager는 Singleton이 아닌 Scene 내 수동 할당 구조로 설정 (의존성 최소화)
'팀스파르타 내일배움캠프' 카테고리의 다른 글
| 면접 복기 TIL (3) | 2025.08.02 |
|---|---|
| [TIL] 경험을 위한 기술, 기술을 위한 경험: 나의 개발 북극성을 찾아서 (3) | 2025.07.23 |
| [TIL] Unity 게임 개발의 3가지 핵심 시스템 구축 (0) | 2025.07.10 |
| [TIL]유니티 CSV 통합 파서 및 로컬라이제이션 구조 리팩토링 (0) | 2025.07.07 |
| [TIL]유니티 커스텀 로컬라이제이션 시스템 구축 및 디버깅 (0) | 2025.07.04 |