From 806e5f722e4baacb30923f802e151c31c48b6c94 Mon Sep 17 00:00:00 2001 From: swrring Date: Thu, 7 May 2026 16:09:54 +0900 Subject: [PATCH] =?UTF-8?q?BT5-Dev=20#22=20=EC=A7=84=EC=A0=95=ED=95=9C=20?= =?UTF-8?q?=EA=B7=BC=EB=B3=B8:=20Enemy.prefab=20m=5FLayer=2013=E2=86=9214?= =?UTF-8?q?=20+=20m=5FTagString=20Player=E2=86=92Untagged=20+=20IgnoreLaye?= =?UTF-8?q?rCollision(13,14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 본 PM 자인 (C5·C39·C44): - BT5-Dev #1~#21 동안 Enemy.prefab m_Layer/m_TagString 영역 검증 X 누적 - Enemy의 m_Layer=13 (Player와 동일) + m_TagString=Player (Player tag 중복) = 진정한 근본 → FindGameObjectWithTag("Player")가 Enemy 발견 + Layer 동일로 IgnoreCollision도 효과 X - 본 PM이 추측·Bounds·Distance·IgnoreCollision·OneWay 영역 모두 = 도달 영역 외 정정 정정: - Enemy.prefab m_Layer 13→14 - Enemy.prefab m_TagString Player→Untagged - GameOptimizer Physics2D.IgnoreLayerCollision(13, 14, true) BeforeSceneLoad 영구 효과: - FindGameObjectWithTag("Player") = Player.prefab만 발견 정합 - Player Layer 13 ↔ Enemy Layer 14 충돌 OFF = 통과 정합 - IgnoreCollision instance 영역 의존 X = 안전 --- Assets/Prefabs/Enemy.prefab | 4 ++-- Assets/Scripts/Mechanics/GameOptimizer.cs | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Assets/Prefabs/Enemy.prefab b/Assets/Prefabs/Enemy.prefab index 5bd3891..47e36fa 100644 --- a/Assets/Prefabs/Enemy.prefab +++ b/Assets/Prefabs/Enemy.prefab @@ -17,9 +17,9 @@ GameObject: - component: {fileID: 772289407653213039} - component: {fileID: 5843668731025413174} - component: {fileID: 7700000000000000002} - m_Layer: 13 + m_Layer: 14 m_Name: Enemy - m_TagString: Player + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/Scripts/Mechanics/GameOptimizer.cs b/Assets/Scripts/Mechanics/GameOptimizer.cs index 47e987f..e03960f 100644 --- a/Assets/Scripts/Mechanics/GameOptimizer.cs +++ b/Assets/Scripts/Mechanics/GameOptimizer.cs @@ -15,6 +15,11 @@ namespace Platformer.Mechanics Application.targetFrameRate = 60; QualitySettings.vSyncCount = 0; Time.fixedDeltaTime = 1f / 60f; + + // BT5-Dev #22 — Layer 영역 분리: Player(13) ↔ Enemy(14) 충돌 영구 OFF. + // IgnoreCollision 영역 instance 의존 X = 모든 Player·Enemy 영역 자동 통과 영역. + Physics2D.IgnoreLayerCollision(13, 14, true); + Debug.Log($"[BT22-LayerSep] Player(13) ↔ Enemy(14) collision OFF"); } ///