개발하면서 부딪힌 문제와 해결 과정을 기록한 곳이다. 예전 프로젝트와 최신 프로젝트 코드, 커밋 기록을 비교해서 정리했다.

<aside> <img src="/icons/light-bulb_gray.svg" alt="/icons/light-bulb_gray.svg" width="40px" />

작성 틀: 프로젝트 / 증상 / 원인 / 해결 / 배운 점

</aside>


한눈에 보기

주제 이전 이후
Update 사용 프로젝트 P: 스크립트 71개 중 29개가 Update 사용 (41%) 디펜스 11%, EX 아케이드 레인저 0%
이벤트 아카데미 서바이벌·프로젝트 P: event 0개 디펜스 11개 파일, Where Whale 53개 파일
유닛 스킬 프로젝트 P: 캐릭터 능력 10개를 전부 붙여두고 switch로 분기 디펜스: 스킬 SO + 인터페이스
총알 초기화 함수 하나에 매개변수 12개 공격·디버프·이펙트·발사 4개 함수로 분리
매니저 초기화 각자 Awake에서 Inst = this GameBootstrap이 등록 → 초기화 순서 관리
데이터 SO 원본 값을 런타임에 직접 수정 런타임 복사 객체에서 계산
오브젝트 풀 enum 순서 = 프리팹 배열 순서 PoolDatabase + 타입별 Queue
해상도 카메라 rect로 9:16 레터박스 CanvasScaler + SafeArea + 가로 화면 비율 제한

구조 개선

Update 함수 줄이고 이벤트 기반으로 바꾸기

유닛 스킬 구조 : if문 분기 → 데이터 객체 + 인터페이스

총알 초기화 함수 매개변수 분리

매니저 초기화 순서 문제 → GameBootstrap

ScriptableObject 원본 값이 바뀌는 문제

오브젝트 풀 enum 순서 의존 → PoolDatabase

제네릭 · 인터페이스 · 추상 클래스로 중복 줄이기


최적화

스프라이트 아틀라스

해상도 · UI 해상도 대응

프레임 설정