بنقرة واحدة
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 처리는 예외.