From 9bc9ccb48e9b043c5d5b80b12341ce765b92d3eb Mon Sep 17 00:00:00 2001 From: swrring Date: Sun, 10 May 2026 23:34:00 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20Camera=20TargetOffset.y=201.62?= =?UTF-8?q?=E2=86=921.0=20+=20Enemy=20patrol=20Tilemap=20=EB=B6=80?= =?UTF-8?q?=EC=9E=AC=20fallback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD: "화면 하단이 좀 더 보여야할거 같아" PD: "왜 적이 움직이지 않는거지? 적이 움직이게 해줘" 근본 (MCP 자율 실측): 1. Camera 하단 - 직전 230d755 TargetOffset.y=1.62·visible -1.38 ~ 5.62 (Background top 정렬·하단 미노출) - 정정 TargetOffset.y=1.0·Camera Y=1.5·visible -2.0 ~ 5.0 (하단 1.0 unit 추가) 2. Enemy patrol 정지 - EnemyController.MeasureSafeWalkDistance (line 146-223) groundTilemaps: Level 비활성 (48109f9)·AutoForeground 부재 → Count=0 → return 0 → _maxRange=0 → SetNextPatrolTarget targetX = startX → 정지 - fix: Tilemap 부재 fallback ``` if (groundTilemaps.Count == 0) return patrolMaxRange; ``` → _maxRange=75·Phase 0/2 startX ± min(50~75, 75) → 좌우 왕복 회귀 영역: - cliffCheck Raycast Layer 0 (groundLayerMask (1<<0)|(1<<16))·GameObject Layer 0 hit 정합 - InfiniteHorizontalGround Camera 따라 reposition·Composite (53.12 unit) 영역 외 patrol 도달 시 항상 collide - Cinemachine Confiner BoundingShape2D·Composer offset 영향 X - Enemy IgnoreCollision Player·Layer 14↔13 정합 Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scenes/Ingame.unity | 44 ++++++++++----------- Assets/Scripts/Mechanics/EnemyController.cs | 5 ++- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/Assets/Scenes/Ingame.unity b/Assets/Scenes/Ingame.unity index e851d6b..b502508 100644 --- a/Assets/Scenes/Ingame.unity +++ b/Assets/Scenes/Ingame.unity @@ -4427,7 +4427,7 @@ PrefabInstance: - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} @@ -4437,27 +4437,27 @@ PrefabInstance: - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 480 objectReference: {fileID: 0} - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 600 objectReference: {fileID: 0} - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 750 objectReference: {fileID: 0} - target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -300 objectReference: {fileID: 0} - target: {fileID: 3550758221024711263, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} @@ -4577,7 +4577,7 @@ PrefabInstance: - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} @@ -4587,27 +4587,27 @@ PrefabInstance: - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 480 objectReference: {fileID: 0} - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 600 objectReference: {fileID: 0} - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 1260 objectReference: {fileID: 0} - target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -300 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} @@ -4617,7 +4617,7 @@ PrefabInstance: - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} @@ -4627,27 +4627,27 @@ PrefabInstance: - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 480 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 600 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 240 objectReference: {fileID: 0} - target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -300 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -12180,7 +12180,7 @@ Transform: m_GameObject: {fileID: 292457041} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -21711,7 +21711,7 @@ Transform: m_GameObject: {fileID: 519420028} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.5, z: -9} + m_LocalPosition: {x: 0, y: 2.12, z: -9} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -313956,7 +313956,7 @@ Transform: m_GameObject: {fileID: 1946717923} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.5, z: -9} + m_LocalPosition: {x: 0, y: 2.12, z: -9} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -314006,7 +314006,7 @@ MonoBehaviour: Size: {x: 0.8, y: 0.8} Offset: {x: 0, y: 0} CenterOnActivate: 1 - TargetOffset: {x: 0, y: 1.62, z: 0} + TargetOffset: {x: 0, y: 1, z: 0} Damping: {x: 1, y: 1, z: 1} Lookahead: Enabled: 0 diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index 42127a2..0073a8f 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -160,7 +160,10 @@ namespace Platformer.Mechanics var t = autoFgGo.GetComponent(); if (t != null) groundTilemaps.Add(t); } - if (groundTilemaps.Count == 0) return 0f; + // BT12-Dev 2026-05-10 — Tilemap 부재 fallback (Level 비활성·AutoForeground 부재 환경). + // Tilemap 없이 GameObject 기반 Composite Collider (InfiniteHorizontalGround) 영역 patrol. + // patrolMaxRange 영역 좌우 왕복·cliffCheck Raycast (Layer 0 GameObject hit) 영역 절벽 검출 정합. + if (groundTilemaps.Count == 0) return patrolMaxRange; // BT110 — 다중 footPos offset fallback // sprite·collider·transform 각 영역 발 후보 + 다중 offset (-0.1·-0.3·-0.5·-0.7·-1.0)