diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index f6d15d3..80540ab 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -89,6 +89,18 @@ namespace Platformer.Mechanics } } + // BT12-Dev 2026-05-11 — PlatformEffector2D 영역 IgnoreCollision (PD 지시: Enemy 발판 자유 통과) + // 발판 17개·Enemy 16개 — Awake 시점 일괄 IgnoreCollision 등록. + if (_collider != null) + { + var platforms = Object.FindObjectsByType(FindObjectsSortMode.None); + foreach (var platform in platforms) + { + var platCol = platform.GetComponent(); + if (platCol != null) Physics2D.IgnoreCollision(_collider, platCol, true); + } + } + // PD 명시 2026-05-08 — 자동 patrol 시작 위치 저장 (측정·target은 Start 시점) _startX = transform.position.x; _startY = transform.position.y; // BT102: 떨어짐 검출 기준 diff --git a/Assets/Scripts/Mechanics/MonsterRandomizer.cs b/Assets/Scripts/Mechanics/MonsterRandomizer.cs index 28edb9f..325c100 100644 --- a/Assets/Scripts/Mechanics/MonsterRandomizer.cs +++ b/Assets/Scripts/Mechanics/MonsterRandomizer.cs @@ -3,21 +3,32 @@ using UnityEngine; namespace Platformer.Mechanics { /// - /// 몬스터 종류 랜덤 영역 — Animator 정합 유지. - /// PD 지시 (2026-05-10): Animator 영역 (Idle·Run·Hurt·Death state) 영역 → Animator 활성·sprite 수동 영역 X. - /// 6종 random visual 다양성 영역 후속 안건 (Sprite 동적 randomization·6 controller·SubStateMachine). + /// 몬스터 종류 랜덤 영역 — 6 색상 random tint·Animator 정합 유지. + /// PD 지시 (2026-05-11): 몬스터 랜덤 변경. + /// Animator (Idle·Run·Hurt·Death) 영역 + SpriteRenderer.color 6종 random. /// public class MonsterRandomizer : MonoBehaviour { - [Tooltip("6 종 × 4 frame idle sprite (24 sprite·6 group). Awake 시 random group 영역 첫 sprite 영역 영역 영역.")] + [Tooltip("이전 호환 — Inspector idle frames 필드 (실제 영역 X·후속 폐기 가능)")] public Sprite[] idleFrames; - const int FramesPerMonster = 4; + // 6 색상 random tint + static readonly Color[] _tints = new Color[] + { + new Color(1.00f, 1.00f, 1.00f), // White (default) + new Color(1.00f, 0.50f, 0.50f), // Red + new Color(0.50f, 1.00f, 0.50f), // Green + new Color(0.50f, 0.70f, 1.00f), // Blue + new Color(1.00f, 1.00f, 0.50f), // Yellow + new Color(0.85f, 0.50f, 1.00f), // Purple + }; void Awake() { - // BT12-Dev 2026-05-10 — Animator 활성 유지 (이전 anim.enabled=false 제거·근본). - // sprite 수동 영역 폐기·Animator Clip (EnemyIdle·EnemyRun·EnemyHurt·EnemyDeath) 영역 정합. + var sr = GetComponent(); + if (sr == null) return; + int idx = Random.Range(0, _tints.Length); + sr.color = _tints[idx]; } } }