using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "NewStageCombatData", menuName = "Create SO Data/Stage/Combat Data")]
public class StageCombatData : StageBaseData
{
    [SerializeField] protected List<WaveData> waves;
    public IReadOnlyList<WaveData> Waves => waves;

    public override List<AssetRef> GetEnemyAssetRefs()
    {
        var uniqueRefs = new HashSet<AssetRef>();
        foreach (var wave in waves)
        {
            if (wave.SpawnDatas == null) continue;

            foreach (var spawnData in wave.SpawnDatas)
            {
                if (spawnData.EnemyData != null && spawnData.EnemyData.AssetRef != null)
                {
                    uniqueRefs.Add(spawnData.EnemyData.AssetRef);

                    foreach (var skillConfig in spawnData.EnemyData.SkillConfigs)
                    {
                        foreach (var skillData in skillConfig.SkillDatas)
                        {
                            foreach (var skill in skillData.GetVFXAssetRefs())
                            {
                                uniqueRefs.Add(skill);
                            }
                        }
                    }
                }
            }
        }

        return new List<AssetRef>(uniqueRefs);
    }
}



032


다른 방법을 찾아보자..