fix(BT12-Dev-Clone): PD 영역 3건 fix — Player 동조·공격·크기 정합

PD 보고 (2026-05-18) 3건:
1. 분신 영역 Player 영역 영역 X (생성 시점 고정) → Player 자식 부착 (SetParent worldPositionStays=false) + localPosition (-signX, 0, 0) 영역 동조
2. 분신 영역 공격 X → Test Fire(idx) 영역 _inventory.RaisePlayerSkillFired(rt) 발화 영역 추가
   - 원인: Test 영역 직접 Effector.Trigger 호출 영역 ActiveSkillRuntime.Fire 영역 영역 X·OnPlayerSkillFired 발화 X
   - fix: Fire(idx) 끝 영역 IsCloneFireActive 분기 + RaisePlayerSkillFired 발화 (분신 hook 영역 미러링 발동)
3. 분신 영역 크기 영역 영역 작아 영역 → localScale = playerSr.transform.localScale 영역 정합
   - 원인: 분신 GameObject 영역 localScale (1,1,1) 영역 영역·PlayerSr 자식 영역 localScale 영역 영역 X 영역 영역 영역 영역 영역
   - fix: PlayerSr 자식 영역 localScale 영역 영역 (자식 lossyScale 영역 영역 영역 영역)

MCP 검증: refresh_unity + read_console errors 0 (compile 통과)
This commit is contained in:
깃 관리자 2026-05-18 15:56:10 +09:00
parent 30b765b383
commit bacc76dd04
2 changed files with 16 additions and 1 deletions

View File

@ -105,11 +105,19 @@ namespace EerieVillage.Skills.Effectors
Vector2 spawnPos = playerPos + new Vector2(-signX * SPAWN_OFFSET_X, 0f); Vector2 spawnPos = playerPos + new Vector2(-signX * SPAWN_OFFSET_X, 0f);
// 4. 신규 GameObject — sprite 복제 + alpha 0.5 + collider 미부착 (무적) // 4. 신규 GameObject — sprite 복제 + alpha 0.5 + collider 미부착 (무적)
// PD 지시 2026-05-18: Player 자식 부착 (Player 이동 시 분신 자동 동조) + scale 영역 Player 동일 (크기 정합)
var go = new GameObject("Clone_A10"); var go = new GameObject("Clone_A10");
go.hideFlags = HideFlags.DontSave; // Scene 오염 방지 (BT12-Dev SOT 정합) go.hideFlags = HideFlags.DontSave; // Scene 오염 방지 (BT12-Dev SOT 정합)
go.transform.position = spawnPos;
var playerSr = playerInventory.GetComponentInChildren<SpriteRenderer>(); var playerSr = playerInventory.GetComponentInChildren<SpriteRenderer>();
// 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;
go.transform.localRotation = Quaternion.identity;
if (playerSr != null) if (playerSr != null)
{ {
var sr = go.AddComponent<SpriteRenderer>(); var sr = go.AddComponent<SpriteRenderer>();

View File

@ -107,6 +107,13 @@ namespace EerieVillage.Skills.Test
if (data.CardId == "A10") _cloneEffector.Trigger(rt, _inventory); if (data.CardId == "A10") _cloneEffector.Trigger(rt, _inventory);
else _spiritFireSpawner.Trigger(rt, _inventory); else _spiritFireSpawner.Trigger(rt, _inventory);
} }
// BT12-Dev-Clone (2026-05-18) — Player 발동 영역 분신 hook 발화
// IsCloneFireActive 분기 — 분신 발동 시 발화 X (무한 재귀 방지)
// Test 영역 직접 Effector.Trigger 영역 ActiveSkillRuntime.Fire 영역 영역 X·OnPlayerSkillFired 발화 X →
// 본 영역 영역 별도 발화 영역 추가 (분신 영역 hook 영역 미러링 발동)
if (!_inventory.IsCloneFireActive)
_inventory.RaisePlayerSkillFired(rt);
} }
} }
} }