BT5-Dev #63: BT48 + None 차단 (나무 충돌 정정만 추가·PD 명시 채택)

PD 명시 (2026-05-07): "이제 이 상태에서 나무가 충돌되는 것만 수정해봐"

변경 (BT62 = BT48 시점 + 1행 추가):
- Level → Foreground 자동 분류 영역에 None Tile 차단 추가:
  if (tileAsset != null && tileAsset.colliderType == None) continue;

효과:
- BT48 영역 발판 동작 그대로 보존 (PD 정합 시점)
- tree·plant·fence·house (4종 None Tile) = 자동 분류 제외
- Level Tilemap 잔존 + Tile asset 자체 None Collider = 자연 통과 (충돌 X)

미적용 영역 (BT49 영역과 차이):
- 사후 복원 영역(Foreground 그려진 None Tile SetColliderType(None) 복원) 미추가
- 이유: PD 명시 = 나무 충돌만 정정 + BT48 영역 변경 최소화

Player.prefab·PlayerController.cs = BT62 영역 그대로 (BT48 시점).
BT49~BT61 누적 14회 변경은 BT62에서 이미 모두 폐기됨.

후속 의무:
- PD Refresh+Play 시각 검증
- 본 PM Editor.log [BT48-MoveTiles] direct read
- 나무·plant·fence·house 통과 + 발판 영역 정합 확증
This commit is contained in:
깃 관리자 2026-05-08 00:00:11 +09:00
parent 57328ec151
commit bfb5832aac
1 changed files with 7 additions and 0 deletions

View File

@ -102,6 +102,13 @@ namespace Platformer.Mechanics
{ {
var pos = new Vector3Int(x, y, 0); var pos = new Vector3Int(x, y, 0);
if (!levelTilemap.HasTile(pos)) continue; if (!levelTilemap.HasTile(pos)) continue;
// BT63 — Tile asset의 m_ColliderType=None = 배경 의도 (tree·plant·fence·house) = 자동 분류 제외
// BT48 시점 + 나무 충돌 정정만 추가 (PD 명시 채택 2026-05-07).
// 결과: 나무·plant·fence·house Tile은 Level 잔존·자체 None Collider로 자연 통과.
var tileAsset = levelTilemap.GetTile<UnityEngine.Tilemaps.Tile>(pos);
if (tileAsset != null && tileAsset.colliderType == UnityEngine.Tilemaps.Tile.ColliderType.None) continue;
Vector3 worldPos = levelTilemap.CellToWorld(pos); Vector3 worldPos = levelTilemap.CellToWorld(pos);
bool aboveThreshold = worldPos.y >= airThresholdY; bool aboveThreshold = worldPos.y >= airThresholdY;
bool isSmallAir = !aboveThreshold && IsSmallAirPlatform(levelTilemap, pos, MAX_PLATFORM_WIDTH); bool isSmallAir = !aboveThreshold && IsSmallAirPlatform(levelTilemap, pos, MAX_PLATFORM_WIDTH);