원클릭으로
verify-ingame-mob
인게임 몹(Mob) 시스템의 오브젝트 풀 반환, 컴포넌트 분리 설계, 화면 밖 이탈 방지 로직(MaxWanderDistance)을 검증합니다.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
인게임 몹(Mob) 시스템의 오브젝트 풀 반환, 컴포넌트 분리 설계, 화면 밖 이탈 방지 로직(MaxWanderDistance)을 검증합니다.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
인게임 핵심 시스템(GameManager, UIManager), 초기화 순서 안전성, UI 데이터 바인딩을 검증합니다.
로비 UI의 팝업 관리 및 뒤로가기(ESC) 로직을 검증합니다. PopupManager 등록 및 중복 입력 처리 여부를 확인합니다.
타이틀 씬의 로그인 흐름(MVVM), 어드레서블 로딩, 앱 업데이트 관리를 검증합니다.
프로젝트 전체의 사운드 구현 패턴을 검증합니다. 싱글톤(Singleton) 대신 인터페이스 주입(DI) 방식의 사용을 권장합니다.
세션 변경사항을 분석하여 검증 스킬 누락을 탐지합니다. 기존 스킬을 동적으로 탐색하고, 새 스킬을 생성하거나 기존 스킬을 업데이트한 뒤 GEMINI.md를 관리합니다.
플레이어 데이터의 DTO/Service 구조, 암호화 처리, 로컬 저장소 정합성을 검증합니다.
| name | verify-ingame-mob |
| description | 인게임 몹(Mob) 시스템의 오브젝트 풀 반환, 컴포넌트 분리 설계, 화면 밖 이탈 방지 로직(MaxWanderDistance)을 검증합니다. |
최근 추가된 몹 배회 경계 규칙 및 몹 데이터/로직 아키텍처가 올바르게 사용되고 있는지 확인합니다.
MobBase.cs 하나에 모든 게 들어있지 않고 로직(MobLogic), 행동(MobBrain), 시각(MobView) 등으로 역할 분리가 유지되는지 검증MaxWanderDistance 초과 시 복귀 처리가 구현되어 있는지 확인Destroy()가 아닌 반환형 메서드 활성화(gameObject.SetActive(false) 또는 커스텀 풀 반환)를 지키는지 검증MobLogic, MobBrain)을 수정했을 때| File | Purpose |
|---|---|
Assets/_Game/Scripts/InGame/Mob/MobBase/*.cs | 몹의 최상위 베이스 스크립트 |
Assets/_Game/Scripts/InGame/Mob/Systems/*.cs | 브레인(FSM), 로직 데이터, 뷰 컴포넌트 |
Assets/_Game/Scripts/InGame/Mob/NormalMob.cs | 기본 잡몹 객체 |
Assets/_Game/Scripts/InGame/ObjectPool/SpawnPositionSolver.cs | 화면 밖 이탈 관련 생성/제한 수학 로직 |
MobLogic.cs 나 NormalMobBrain.cs 내부에서 배회 시 화면 중심이나 플레이어와의 거리를 판별하는 코드가 존재하는지 확인합니다. 무제한으로 뻗어나가 메모리에 남는 걸 방지해야 합니다.
파일: Assets/_Game/Scripts/InGame/Mob/Systems/*.cs
검사:
grep -n "MaxWanderDistance\|sqrMagnitude\|distance" Assets/_Game/Scripts/InGame/Mob/Systems/*.cs
PASS: 거리 제한 연산 로직(MaxWanderDistance 등)이 관측됨.
FAIL: 거리 비교 코드가 없음. (무한 맵 밖으로 이동할 위험).
사망 처리는 오브젝트 풀링을 거쳐야 하므로, 몹 생명주기 관리 스크립트에서 일반 Destroy(gameObject)가 직접 호출되지 않아야 합니다.
파일: Assets/_Game/Scripts/InGame/Mob/**/*.cs
검사:
grep -n "Destroy(gameObject)" Assets/_Game/Scripts/InGame/Mob/**/*.cs
PASS: 아무것도 검색되지 않음.
FAIL: Destroy(gameObject) 발견.
수정: gameObject.SetActive(false) 나 풀 매니저의 Release 메서드 등으로 교체하세요.
MobBase나 하위 스크립트들이 Awake 구간에서 책임 컴포넌트들을 찾아서 주입(Cache/Composition)하는지 확인하여 단일 God Object 형태를 방지하는지 확인합니다.
파일: Assets/_Game/Scripts/InGame/Mob/MobBase/MobBase.cs
검사:
grep -n "GetComponentInChildren<MobBrain>\|GetComponentInChildren<MobLogic>" Assets/_Game/Scripts/InGame/Mob/MobBase/MobBase.cs
PASS: 컴포넌트 분리 후 캐싱하는 로직이나 변수가 발견됨.
FAIL: 명확한 분리 캐싱 없이 MobBase 하나로 모든 것을 다 처리함.
MobBase나 하위 몹에서 데미지를 입을 때 EffectManager를 통해 피격 점멸 효과를 호출하는지 확인합니다.
파일: Assets/_Game/Scripts/InGame/Mob/**/*.cs
검사:
grep -n "m_effectService?.PlayHitFlash" Assets/_Game/Scripts/InGame/Mob/**/*.cs
PASS: 피격 시 PlayHitFlash 호출 로직이 확인됨.
FAIL: 피격 효과 트리거 누락.
| 검증 항목 | 상태 | 상세 내역 |
|---|---|---|
| 배회 이탈 제약 | PASS / FAIL | 거리 기반 제한 로직 존재 여부 |
| 풀링 반환 준수 | PASS / FAIL | Destroy 사용 안함 여부 |
| 컴포넌트 분리 설계 | PASS / 주의 | Base 클래스의 컴포넌트 캐싱 여부 |
null 처리는 예외.