오늘의 학습 키워드
UI 중복 없이 랜덤 뽑기
공부한 내용
UI 중복 없이 랜덤 뽑기
구현해야할 것 : UI 안에 아이템을 등록해야 하는데 중복 없이 뽑으려고 한다.
시도한 것 1 : 배열을 검사하여 이미 생성했다면 continue로 다시 돌아가 반복하기
문제점 : 이미 검사한 것을 반복적으로 검사하게 되어 시도 횟수가 많아질 수 밖에 없다.
시도한 것 2 : 리스트를 할당하여 이미 생성한 것이라면 리스트에서 제거하여 중복 검출을 한다.
장점 : 이미 생성한 것 이외의 조건도 추가가 가능하여 유연하다.
private void InstantiateRandomItems()
{
List<UpgradeItem> upgradeItems = new List<UpgradeItem>(WeaponManager.Instance.WeaponPrefabs);
int count = _itemCount;
while (count > 0)
{
int index = UnityEngine.Random.Range(0, upgradeItems.Count);
bool isMax = WeaponManager.Instance.IsLevelMax(upgradeItems[index]);
if (isMax)
{
upgradeItems.Remove(upgradeItems[index]);
continue;
}
Instantiate(upgradeItems[index], weaponParent);
upgradeItems.Remove(upgradeItems[index]);
count--;
}
}
오늘의 회고
오늘은 무기 데이터 구현과 UI 연결을 진행했다. 아직 실제 데이터가 적용(캐릭터의 투사체에 데이터 적용)은 되지 않았지만 내일 실제 데이터와 연결할 생각이다. 그리고 이후에는 각 무기 별로 발사되는 로직을 구현하도록 할 생각이다. 오늘 캐릭터와 연결하는 부분을 고민을 많이 해서 시간이 오래 걸렸지만 그래도 내일 어떻게 구현해야할지 답이 좀 나온 것 같아서 다행이다.
내일은 추석 연휴가 시작되기 전 날인데 열심히 해서 연휴 때 여유롭게 진행했으면 좋겠다. 내일도 파이팅!
'스파르타 Unity 1기' 카테고리의 다른 글
내일배움캠프 38일차 TIL - 무기 2가지 구현 (0) | 2023.09.29 |
---|---|
내일배움캠프 37일차 TIL - 원형으로 발사되는 투사체 (0) | 2023.09.27 |
내일배움캠프 35일차 TIL - UI 팝업 관리 (0) | 2023.09.25 |
내일배움캠프 34일차 TIL - Status와 UI 연동 (0) | 2023.09.22 |
내일배움캠프 33일차 TIL - ScriptableObject (0) | 2023.09.21 |