using UnityEngine; namespace Platformer.Mechanics { /// /// 몬스터 종류 랜덤 — 6 AnimatorOverrideController random select. /// PD 지시 (2026-05-11): 몬스터 종류 랜덤 변경. /// 6종 (M001~M006) Idle Clip override·Animator runtimeAnimatorController random. /// public class MonsterRandomizer : MonoBehaviour { [Tooltip("이전 호환 — 24 sprite (6종 × 4 frame). Override Controller 신규 영역 후속 폐기 가능.")] public Sprite[] idleFrames; [Tooltip("6 AnimatorOverrideController (M001~M006).")] public AnimatorOverrideController[] overrideControllers; // PD 지시 2026-05-15 — 날으는 몬스터 영역 (M002 박쥐 등) // overrideControllers 영역 동일 length·true 영역 EnemyController.IsFlying=true 자동 set [Tooltip("각 overrideController 영역 IsFlying flag (동일 length). 박쥐 등 공중 몬스터 영역 true.")] public bool[] flyingFlags; void Awake() { if (overrideControllers == null || overrideControllers.Length == 0) return; var anim = GetComponent(); if (anim == null) return; int idx = Random.Range(0, overrideControllers.Length); anim.runtimeAnimatorController = overrideControllers[idx]; // PD 지시 2026-05-15 — 박쥐 선택 시 EnemyController.IsFlying=true 자동 set if (flyingFlags != null && idx < flyingFlags.Length && flyingFlags[idx]) { var ec = GetComponent(); if (ec != null) ec.IsFlying = true; } } } }