fix(BT12-Dev-Clone): 분신 크기 영역 Player 동일 영역 정정 (lossyScale 정합·PD 지시 2026-05-18)

원인: 분신 영역 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
This commit is contained in:
깃 관리자 2026-05-18 19:20:40 +09:00
parent d603e59126
commit e9f9d72be4
1 changed files with 17 additions and 2 deletions

View File

@ -122,8 +122,23 @@ namespace EerieVillage.Skills.Effectors
// Player 자식 부착 (worldPositionStays=false) + localPosition 영역 facing 반대 1유닛 // Player 자식 부착 (worldPositionStays=false) + localPosition 영역 facing 반대 1유닛
go.transform.SetParent(playerInventory.transform, false); go.transform.SetParent(playerInventory.transform, false);
go.transform.localPosition = new Vector3(-signX * SPAWN_OFFSET_X, 0f, 0f); go.transform.localPosition = new Vector3(-signX * SPAWN_OFFSET_X, 0f, 0f);
// PD 지시 2026-05-18 — 분신 크기 = Player 동일. PlayerSr 자식 영역 localScale 영역 정합 (자식 lossyScale 영역 영역 영역). // PD 지시 2026-05-18 — 분신 크기 = Player 동일.
go.transform.localScale = playerSr != null ? playerSr.transform.localScale : Vector3.one; // 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; go.transform.localRotation = Quaternion.identity;
SpriteRenderer cloneSr = null; SpriteRenderer cloneSr = null;