From bacc76dd041f54067f08491f82747aa3c413ea81 Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 18 May 2026 15:56:10 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev-Clone):=20PD=20=EC=98=81=EC=97=AD?= =?UTF-8?q?=203=EA=B1=B4=20fix=20=E2=80=94=20Player=20=EB=8F=99=EC=A1=B0?= =?UTF-8?q?=C2=B7=EA=B3=B5=EA=B2=A9=C2=B7=ED=81=AC=EA=B8=B0=20=EC=A0=95?= =?UTF-8?q?=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 통과) --- Assets/Scripts/Skills/Effectors/CloneInstance.cs | 10 +++++++++- Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Skills/Effectors/CloneInstance.cs b/Assets/Scripts/Skills/Effectors/CloneInstance.cs index 9a2951d..9e31e72 100644 --- a/Assets/Scripts/Skills/Effectors/CloneInstance.cs +++ b/Assets/Scripts/Skills/Effectors/CloneInstance.cs @@ -105,11 +105,19 @@ namespace EerieVillage.Skills.Effectors Vector2 spawnPos = playerPos + new Vector2(-signX * SPAWN_OFFSET_X, 0f); // 4. 신규 GameObject — sprite 복제 + alpha 0.5 + collider 미부착 (무적) + // PD 지시 2026-05-18: Player 자식 부착 (Player 이동 시 분신 자동 동조) + scale 영역 Player 동일 (크기 정합) var go = new GameObject("Clone_A10"); go.hideFlags = HideFlags.DontSave; // Scene 오염 방지 (BT12-Dev SOT 정합) - go.transform.position = spawnPos; var playerSr = playerInventory.GetComponentInChildren(); + + // 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) { var sr = go.AddComponent(); diff --git a/Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs b/Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs index 879444a..dea2149 100644 --- a/Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs +++ b/Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs @@ -107,6 +107,13 @@ namespace EerieVillage.Skills.Test if (data.CardId == "A10") _cloneEffector.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); } } }