fix(BT12-Dev-Clone): 분신 영역 영역 영역 영역 영역 영역 영역 (PD 지시 2026-05-18)

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
This commit is contained in:
깃 관리자 2026-05-18 19:25:23 +09:00
parent e9f9d72be4
commit c3749ddbf5
1 changed files with 24 additions and 4 deletions

View File

@ -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<PlayerController>();
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;
}
// ─────────────────────────────────────────────────────────────