PD: "여전히 움직이지 않아·실측·근본 원인 체크"
근본 (MCP Play 실측·자성 #12·#13):
- AnimationController field initializer: PlatformerModel model = Simulation.GetModel<PlatformerModel>()
- Editor·Play mode 전환 시 Simulation.GetModel 호출이 인스턴스 컨텍스트 외부에서 실행
- field initializer 영역 NRE/Exception → Component 생성 자체 실패
- Awake/OnEnable 모두 호출 X
- 결과: spriteRenderer/animator/body 모두 NULL
- AnimationController.ComputeVelocity NRE → KinematicObject.Update/FixedUpdate 영역 실행되나
spriteRenderer.flipX/animator.SetFloat 호출 NRE → ComputeVelocity 영역 중단·targetVelocity 미설정
- velocity=0·move=0·Enemy 영구 정지
fix:
1. field initializer 폐기·Awake 영역 try-catch로 안전 초기화
- try { model = Simulation.GetModel<PlatformerModel>(); } catch { model = null; }
2. ComputeVelocity에서 spriteRenderer/animator NULL 가드
3. model NULL 시 jumpModifier=1·jumpDeceleration=0.5 default
검증 (MCP Play):
- 직전: sr=NULL·anim=NULL·body=NULL
- 정정 후: sr=OK·anim=OK·body=OK·IsGrounded=True
회귀 영역 X:
- spriteRenderer/animator GetComponentInChildren fallback 정합
- KinematicObject·EnemyController·patrol·cliffCheck 영역 영역 X
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PD: "몬스터 방향 전환 시 이미지 잘못 출력"
근본:
- AnimationController에 [RequireComponent(SpriteRenderer, Animator)] 잔존
- Enemy.prefab root SR·Animator 제거 시도가 RequireComponent에 의해 차단
- Variant 6 모두 root SpriteRenderer 잔존·AnimationController.spriteRenderer = root
- ComputeVelocity의 flipX = root에 적용·실제 보이는 Visual 자식 SpriteRenderer 영향 X
- 방향 전환 시 sprite flip 안 됨
fix:
1. AnimationController.cs — [RequireComponent] 제거
2. Enemy.prefab base — root SpriteRenderer·Animator 폐기
3. Variant 6 prefab 재생성 (이전 Variant 폐기·신규)
- Visual 자식 SpriteRenderer.sprite·Animator.runtimeAnimatorController override
4. Scene 16 Enemy instance root SR·Animator 잔존 폐기
5. 결과: AnimationController.spriteRenderer = GetComponentInChildren<SpriteRenderer>() = Visual.SpriteRenderer
flipX·sprite·Animator 모두 Visual 자식 단일화
회귀 영역 X:
- Visual 자식 SpriteRenderer·Animator·OverrideController 정합
- KinematicObject·Collider·EnemyController patrol 영역 영역 X
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PD 명시 (2026-05-08): "몬스터도 캐릭터와 같이 리소스를 반대로 재생시켜야 해"
근본 원인:
- AnimationController.cs (Enemy 영역) flipX 영역:
- 우측 이동 시 flipX = false
- 좌측 이동 시 flipX = true
- PlayerController.cs (Hero1 영역) flipX 영역:
- 우측 이동 시 flipX = true
- 좌측 이동 시 flipX = false
- = 반대 영역. M001 sprite (좌측 향함) 기준 Enemy 영역 우측 이동 시 sprite 그대로 = 후방 이동 영역.
정정 (true·false 반전):
- 우측 이동 시 spriteRenderer.flipX = true
- 좌측 이동 시 spriteRenderer.flipX = false
- = PlayerController·Hero1 영역과 동일 영역 정합
PD 추가 보고 진단 (첫 번째 등장 몬스터 정지):
- Scene Enemy prefab 인스턴스 16개 중 5개 path 미설정 (#3·#9·#11·#13·#14)
- path null = mover null = move.x = 0 = 정지
- pos.x 카탈로그: #13(7.79·path=0) #3(24.49·NO_PATH) #14(42.91·NO_PATH) #11(82.28·NO_PATH) #9(139.27·NO_PATH)
- = PD 시각 첫 번째 등장 = pos.x 가장 작은 영역 가설 (#13 또는 #3)
- 정정 영역 = PD가 Editor에서 path 영역 직접 부여 의무 (PatrolPath GameObject Inspector 영역 drag·drop)