using System; using System.Collections.Generic; using UnityEngine; // ============================================================================ // WaveData // ---------------------------------------------------------------------------- // 한 웨이브의 정의. .asset으로 만들어 WaveManager에 순서대로 할당. // // 예시: // WaveName = "Wave 1" // Spawns = [(BlackMan, 3), (Robot, 1)] → BlackMan 3마리 + Robot 1마리 // TimeLimit = 30 → 30초 안에 다 잡아야 함 // SpawnInterval = 0.5 → 마리 사이 0.5초 간격 // StartDelay = 2 → 웨이브 시작 전 2초 대기 // ============================================================================ [CreateAssetMenu(fileName = "WaveData", menuName = "Combat/WaveData")] public class WaveData : ScriptableObject { public string WaveName; // UI/로그용 식별자 public List Spawns = new(); // 스폰할 적 종류와 수량 목록 public float TimeLimit = 30f; // 이 시간 안에 모두 잡지 못하면 패배 (초) public float SpawnInterval = 0.3f; // 적 한 마리씩 스폰하는 시간 간격 public float StartDelay = 0f; // 웨이브 시작 전 대기 시간 (인트로/카운트다운 시간) } // 한 종류의 적을 몇 마리 스폰할지 표현. [Serializable] public class SpawnEntry { public Enemy EnemyPrefab; // 스폰할 Enemy 프리팹 public int Count = 1; // 마리 수 }