34 lines
1.6 KiB
C#
34 lines
1.6 KiB
C#
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<SpawnEntry> 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; // 마리 수
|
|
}
|