From c3749ddbf532ca88499d3654b50e145d464e0b3c Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 18 May 2026 19:25:23 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev-Clone):=20=EB=B6=84=EC=8B=A0=20?= =?UTF-8?q?=EC=98=81=EC=97=AD=20=EC=98=81=EC=97=AD=20=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=EC=98=81=EC=97=AD=20=EC=98=81=EC=97=AD=20=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=EC=98=81=EC=97=AD=20(PD=20=EC=A7=80=EC=8B=9C=202026-05-18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 보고: '분신 영역 영역 영역 영역 영역 영역. 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역.' 원인: SyncSpriteAndPosition 영역 매 frame _cloneSr.flipX = _playerSr.flipX 영역 영역 - Player 영역 영역 영역 영역 즉시 영역 영역 → 분신 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 - 분신 영역 sprite 영역 영역 → 영역 영역 영역 영역 영역 영역 영역 영역 fix: 분신 flipX 영역 = 이동 방향 영역 영역 영역 - deltaX > 0 (영역 영역 영역) → flipX = false (영역 영역 영역) - deltaX < 0 (영역 영역 영역) → flipX = true (영역 영역 영역) - 영역 영역 (deltaX = 0) → Player flipX 영역 영역 (영역 영역 영역 정합) 영역: Player 영역 영역 영역 영역 영역 영역 영역 → 분신 영역 (target 영역 영역) 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 → Player 영역 영역 영역 영역 → 분신 영역 영역 영역 영역 → target 영역 영역 영역 MCP 검증: refresh_unity + read_console errors 0 --- .../Scripts/Skills/Effectors/CloneInstance.cs | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) 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; } // ─────────────────────────────────────────────────────────────