diff --git a/Assets/Scripts/Skills/Effectors/CloneInstance.cs b/Assets/Scripts/Skills/Effectors/CloneInstance.cs index 7e342c1..afb749a 100644 --- a/Assets/Scripts/Skills/Effectors/CloneInstance.cs +++ b/Assets/Scripts/Skills/Effectors/CloneInstance.cs @@ -225,14 +225,14 @@ namespace EerieVillage.Skills.Effectors { if (_playerInventory == null) return; - // 1. PD 지시 2026-05-18 — sprite 영역 매 frame Player 영역 동조 (Animator frame·flipX 영역 영역) + // 1. PD 지시 2026-05-18 — sprite 영역 매 frame Player 영역 동조 (Animator frame 영역). + // flipX 영역 영역 영역 영역 영역 — 이동 방향 영역 영역 영역 영역. if (_cloneSr != null && _playerSr != null) { _cloneSr.sprite = _playerSr.sprite; - _cloneSr.flipX = _playerSr.flipX; } - // 2. PD 지시 2026-05-18 — Player facing 변경 시 분신 위치 영역 영역 영역 영역 (순간 이동 X·걸어서 뒤로 가는 영역) + // 2. 목표 위치 영역 (Player facing 영역 영역 영역) var pc = _playerInventory.GetComponent(); if (pc != null) { @@ -245,7 +245,27 @@ namespace EerieVillage.Skills.Effectors } // 3. 영역 영역 영역 영역 영역 영역 영역 (MoveTowards · MOVE_SPEED 영역 영역) - transform.localPosition = Vector3.MoveTowards(transform.localPosition, _targetLocalPos, MOVE_SPEED * Time.deltaTime); + Vector3 currentLocalPos = transform.localPosition; + Vector3 newLocalPos = Vector3.MoveTowards(currentLocalPos, _targetLocalPos, MOVE_SPEED * Time.deltaTime); + + // 4. PD 지시 2026-05-18 — 분신 영역 영역 영역 영역 영역 영역 영역 영역 (영역 영역 X) + // deltaX > 0 → 영역 영역 영역 → flipX = false (영역 sprite 영역 영역) + // deltaX < 0 → 영역 영역 영역 → flipX = true + // 영역 영역 영역 영역 영역 → Player flipX 영역 영역 (대기 영역) + if (_cloneSr != null) + { + float deltaX = newLocalPos.x - currentLocalPos.x; + if (Mathf.Abs(deltaX) > 0.0001f) + { + _cloneSr.flipX = deltaX < 0f; + } + else if (_playerSr != null) + { + _cloneSr.flipX = _playerSr.flipX; + } + } + + transform.localPosition = newLocalPos; } // ─────────────────────────────────────────────────────────────