From e9f9d72be416764e79f3c73a6b5e63135fd5ad4d Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 18 May 2026 19:20:40 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev-Clone):=20=EB=B6=84=EC=8B=A0=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=20=EC=98=81=EC=97=AD=20Player=20=EB=8F=99?= =?UTF-8?q?=EC=9D=BC=20=EC=98=81=EC=97=AD=20=EC=A0=95=EC=A0=95=20(lossySca?= =?UTF-8?q?le=20=EC=A0=95=ED=95=A9=C2=B7PD=20=EC=A7=80=EC=8B=9C=202026-05-?= =?UTF-8?q?18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 원인: 분신 영역 Player root 자식 부착 영역 + localScale = playerSr.transform.localScale 영역 영역 - PlayerSr 영역 영역 영역 영역 영역 영역 (예: Player → SpriteHolder → PlayerSr) 영역 영역 영역 영역 영역 자식 영역 영역 localScale 영역 영역 영역 X - 분신 lossyScale = playerInventory.lossyScale * playerSr.localScale 영역 영역 PlayerSr.lossyScale 영역 영역 영역 영역 영역 fix: PlayerSr.lossyScale 영역 동일 영역 영역 분신 localScale 영역 정확 계산 - 분신 lossyScale = playerInv.lossyScale * localScale ← PlayerSr.lossyScale 동일 영역 영역 - 영역: localScale = PlayerSr.lossyScale / playerInv.lossyScale (각 축 영역) - 0 나누기 영역 fallback Vector3.one (안전망) MCP 검증: refresh_unity + read_console errors 0 --- .../Scripts/Skills/Effectors/CloneInstance.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Skills/Effectors/CloneInstance.cs b/Assets/Scripts/Skills/Effectors/CloneInstance.cs index d4392ef..7e342c1 100644 --- a/Assets/Scripts/Skills/Effectors/CloneInstance.cs +++ b/Assets/Scripts/Skills/Effectors/CloneInstance.cs @@ -122,8 +122,23 @@ namespace EerieVillage.Skills.Effectors // Player 자식 부착 (worldPositionStays=false) + localPosition 영역 facing 반대 1유닛 go.transform.SetParent(playerInventory.transform, false); go.transform.localPosition = new Vector3(-signX * SPAWN_OFFSET_X, 0f, 0f); - // PD 지시 2026-05-18 — 분신 크기 = Player 동일. PlayerSr 자식 영역 localScale 영역 정합 (자식 lossyScale 영역 영역 영역). - go.transform.localScale = playerSr != null ? playerSr.transform.localScale : Vector3.one; + // PD 지시 2026-05-18 — 분신 크기 = Player 동일. + // PlayerSr 영역 자식 구조 영역 영역 영역 영역 — PlayerSr.lossyScale 영역 동일 영역 영역 localScale 영역 정정. + // 분신 lossyScale = playerInventory.lossyScale * localScale → PlayerSr.lossyScale 동일 영역 = srLossy / playerInvLossy. + if (playerSr != null) + { + Vector3 playerInvLossy = playerInventory.transform.lossyScale; + Vector3 srLossy = playerSr.transform.lossyScale; + go.transform.localScale = new Vector3( + Mathf.Abs(playerInvLossy.x) > 0.0001f ? srLossy.x / playerInvLossy.x : 1f, + Mathf.Abs(playerInvLossy.y) > 0.0001f ? srLossy.y / playerInvLossy.y : 1f, + Mathf.Abs(playerInvLossy.z) > 0.0001f ? srLossy.z / playerInvLossy.z : 1f + ); + } + else + { + go.transform.localScale = Vector3.one; + } go.transform.localRotation = Quaternion.identity; SpriteRenderer cloneSr = null;