← ClaudeAtlas

unitylisted

Unity 개발 절차 — 2D 폰게임 중심. 헤드리스 테스트, 해상도·터치·발열 대응, AltTester 금지 근거. 트리거 "유니티", "Unity", "폰 게임", "모바일 게임".
snwlee/Nereus · ★ 2 · AI & Automation · score 75
Install: claude install-skill snwlee/Nereus
# unity nereus:common 규칙을 따른다. 워크플로는 **nereus 코어가 소유한다** — 이 스킬은 Unity 고유 절차만 담는다. 도메인 판단(레벨·스토리·UI/UX·에셋·밸런싱)은 도메인 스킬이 하고, 여기서 되풀이하지 않는다. ## 1. 프로젝트 전제 `ProjectSettings/ProjectVersion.txt` 가 있어야 Unity 스택으로 인식된다. 테스트 러너는 `lib/unity-stack.mjs` 의 `detectUnityRunner` 가 판정한다 — `Packages/manifest.json` 의 `dependencies` 에 `com.unity.test-framework` 가 **실제로 들어 있어야** 한다. 코어의 확장 선언은 파일 존재만 보지만 `detectUnityRunner` 는 매니페스트 내용까지 읽는다. 프레임워크 없이 러너를 돌려주면 TDD 게이트가 매번 실패하고, 그러면 게이트를 꺼버리게 되기 때문이다. ## 2. 테스트는 헤드리스로 돈다 ``` Unity -runTests -batchmode -nographics -quit ``` - EditMode 는 빠르다. 순수 로직은 전부 여기로 민다. - PlayMode 는 느리다. 씬·물리·코루틴이 실제로 필요한 것만 남긴다. - **로직을 MonoBehaviour 에서 떼어내는 설계가 곧 EditMode 커버리지다.** 이걸 spec 단계에서 태스크로 쪼갠다. - CI 에서는 라이선스 활성화가 선행되어야 한다. 이것이 Unity CI 의 가장 흔한 실패 지점이다. - **TDD 게이트가 안 켜지면 `Packages/manifest.json` 부터 본다.** 매니페스트가 깨져 파싱에 실패해도 "테스트 프레임워크 없음"과 똑같이 러너가 `null` 이 되어 게이트가 조용히 꺼진다. 둘은 구분되지 않는다. ## 3. 2D 폰게임에서 봐야 하는 것 | 축 | 기준 | |---|---| | 해상도 | 종횡비 범위를 먼저 정한다(18:9 ~ 4:3). 안전영역 밖에 정보를 두지 않는다 | | 터치 | 최소 타겟 44dp. 손가락이 누른 지점을 가린다는 것을 전제로 피드백 위치를 잡는다 | | 발열·배터리 | 프레임 상한을 건다. 60 을 항상 쓰는 것보다 30 고정이 나은 구간이 있다 | | 파편화 | 최저 사양 기기를 먼저 정하고 거기서 측정한다. 최신 기기에서만 재면 출시 후에 안다 | | 빌드 크기 | 텍스처 압축 포맷을 플랫폼별로 지정한다. 기본값이면 크기가 몇 배가 된다 | 스프라이트 아틀라스를 쓴다. 드로우콜은 2D 에서 가장 흔한 성능 문제다. ## 4. Unity 공식 플러그인에 위임한다 Unity 가 낸 first-party 플러그인이 있다 — `unity@unity-agent-plugin`. 스킬 29개 + Unity CLI + Unity MCP 서버(에디터 실시간 제어). Unity 팀이 직접 쓰고 보안 검토하며 **엔진 업데이트와 함께 갱신한다.** 그래서 엔진 API 절차는 우리가 들고 있지 않는다 —