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:
parent
d603e59126
commit
e9f9d72be4
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue