fix(BT12-Dev): Camera TargetOffset.y 1.62→1.0 + Enemy patrol Tilemap 부재 fallback
PD: "화면 하단이 좀 더 보여야할거 같아" PD: "왜 적이 움직이지 않는거지? 적이 움직이게 해줘" 근본 (MCP 자율 실측): 1. Camera 하단 - 직전230d755TargetOffset.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) <noreply@anthropic.com>
This commit is contained in:
parent
230d7553e9
commit
9bc9ccb48e
|
|
@ -4427,7 +4427,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -4437,27 +4437,27 @@ PrefabInstance:
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 480
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 0
|
value: 600
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 750
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 1561733016117246437, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: -300
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3550758221024711263, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 3550758221024711263, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -4577,7 +4577,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -4587,27 +4587,27 @@ PrefabInstance:
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 480
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 0
|
value: 600
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 1260
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 6974954132386231314, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: -300
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -4617,7 +4617,7 @@ PrefabInstance:
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -4627,27 +4627,27 @@ PrefabInstance:
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 480
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
value: 0
|
value: 600
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 240
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
- target: {fileID: 9212598073689065413, guid: 9071d6ddb5d4f854185629ee1970af50,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: -300
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
|
|
@ -12180,7 +12180,7 @@ Transform:
|
||||||
m_GameObject: {fileID: 292457041}
|
m_GameObject: {fileID: 292457041}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
|
|
@ -21711,7 +21711,7 @@ Transform:
|
||||||
m_GameObject: {fileID: 519420028}
|
m_GameObject: {fileID: 519420028}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
|
|
@ -313956,7 +313956,7 @@ Transform:
|
||||||
m_GameObject: {fileID: 1946717923}
|
m_GameObject: {fileID: 1946717923}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
|
|
@ -314006,7 +314006,7 @@ MonoBehaviour:
|
||||||
Size: {x: 0.8, y: 0.8}
|
Size: {x: 0.8, y: 0.8}
|
||||||
Offset: {x: 0, y: 0}
|
Offset: {x: 0, y: 0}
|
||||||
CenterOnActivate: 1
|
CenterOnActivate: 1
|
||||||
TargetOffset: {x: 0, y: 1.62, z: 0}
|
TargetOffset: {x: 0, y: 1, z: 0}
|
||||||
Damping: {x: 1, y: 1, z: 1}
|
Damping: {x: 1, y: 1, z: 1}
|
||||||
Lookahead:
|
Lookahead:
|
||||||
Enabled: 0
|
Enabled: 0
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,10 @@ namespace Platformer.Mechanics
|
||||||
var t = autoFgGo.GetComponent<UnityEngine.Tilemaps.Tilemap>();
|
var t = autoFgGo.GetComponent<UnityEngine.Tilemaps.Tilemap>();
|
||||||
if (t != null) groundTilemaps.Add(t);
|
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
|
// BT110 — 다중 footPos offset fallback
|
||||||
// sprite·collider·transform 각 영역 발 후보 + 다중 offset (-0.1·-0.3·-0.5·-0.7·-1.0)
|
// sprite·collider·transform 각 영역 발 후보 + 다중 offset (-0.1·-0.3·-0.5·-0.7·-1.0)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue