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,
|
||||
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
|
||||
|
|
|
|||
|
|
@ -160,7 +160,10 @@ namespace Platformer.Mechanics
|
|||
var t = autoFgGo.GetComponent<UnityEngine.Tilemaps.Tilemap>();
|
||||
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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue