EerieVillage/Assets/Scripts/Mechanics/MonsterRandomizer.cs

40 lines
1.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
namespace Platformer.Mechanics
{
/// <summary>
/// 몬스터 종류 랜덤 — 6 AnimatorOverrideController random select.
/// PD 지시 (2026-05-11): 몬스터 종류 랜덤 변경.
/// 6종 (M001~M006) Idle Clip override·Animator runtimeAnimatorController random.
/// </summary>
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<Animator>();
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<EnemyController>();
if (ec != null) ec.IsFlying = true;
}
}
}
}