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);
}
}
다른 방법을 찾아보자..
엄.ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 좋은 구조 생각해봐
requiredAssetRefs에 넣어버렸슴.. 딸깍으로 해결
의외로 문제 없다면 OK
다만 나도 저런 코드는 못 참긴해...
한번만 사용한다면 OK입니다
게임 켜고 첫 방 입장 시 한번이기는 한데....... 음.....
내 코드인줄ㅋ
한번만참죠?
댓글 ㄹㅇ 개공감이네 걍 한 번 참을까? 해서 넘긴 저런 코드만 몇갠지
돌아가기만 하면 좋았쓰 - dc App
와저게 몇단이야
몇 개 떠오르는 게 있긴 한데...
오옹 머용?
한 번만 한다해서 linq도 될 것 같긴한데 linq가 좋음? for가 좋음?