이번 글에서는 enum 기반 드롭 다운 및 스크롤 리스트 생성 한것을 정리 해보겠습니다.
먼저 드롭 다운 및 스크롤 뷰 그리고 스크롤 뷰 안에 들어가는 오브젝트를 생성 합니다.


ItemType과 Condition 같은 enum 데이터를 기반으로 드롭다운 UI를 자동 생성하는 기능을 구현했습니다.
enum 값이 바뀌거나 수정이 되더라도 옵션이 자동으로 갱신하도록 만들었습니다.
먼저 Enum.GetValues(Typeof(타입)) 을 이용하여 값을 배열로 반환합니다.
이것을 리스트에 추가 및 저장 할수있게 했습니다.
private void DropDownData()
{
itemTypeList.Clear();
//Enum.GetValues(typeof(ItemType)) ->enum 타입의 정의된 모든 값을 배열로 반환하는 함수
foreach (ItemTpyes type in Enum.GetValues(typeof(ItemTpyes)))
{
itemTypeList.Add(type);
}
ConditionList.Clear();
foreach (Condition condition in Enum.GetValues(typeof(Condition)))
{
ConditionList.Add(condition);
}
}
이제 저장된 리스트 값을 .options.Add()를 이용하여 하나씩 추가
TMP_Dropdown.OptionData()로 각 드롭다운 항목을 생성
.value값을 0으로 하면 첫번째 항목이 선택이 됩니다.
private void ItemTpyeDropDown()
{
int dropCount = 0;
foreach (ItemTpyes type in itemTypeList)
{
string dropDownStr = $"{type}";
itemTypeDropDown.options.Add(new TMP_Dropdown.OptionData(dropDownStr));
dropCount++;
}
itemTypeDropDown.value = 0;
itemTypeDropDown.RefreshShownValue();
}
스크롤 리스트는 아이템 이미지 미리보기 처럼 특정 오브젝트를 생성한후 스크롤 뷰 안에 넣는 방식입니다.
하지만 아이템 정보를 보면
[System.Serializable]
public class ItemDatas
{
public ItemEffect effectType;
public float value;
}
이렇게 내가 원하는것을 생성 후 아이템에 등록하는 방식 입니다.
foreach (Transform child in ScrollObj.transform)
{
Destroy(child.gameObject);
}
일단 먼저 기존에 있는 슬롯을 제거 합니다.
ItemEffect[] values = (ItemEffect[])System.Enum.GetValues(typeof(ItemEffect));
List<ItemEffect> validEffects = new List<ItemEffect>();
foreach (var effect in values)
{
if (effect != ItemEffect.None)
validEffects.Add(effect);
}
기존에 값이 삭제가 되면 이제 Enum 값 가져옵니다.
for (int count = 0; count < validEffects.Count; count++)
{
GameObject IEC = Instantiate(EffectSlotP, ScrollObj.transform);
ItemEffect selected = validEffects[count];
IEC.GetComponentInChildren<CreateItemSlotEffect>().settingSlotEffect(selected);
createEffectObj.Add(IEC);
}
이제 값을 가져오면 슬롯 동적 생성을 합니다.
이렇게 만들고나서 슬롯 안에 들어가는 오브젝트에 ItemEffect를 받으면 최종적으로 슬롯에 추가가됩니다.

'유니티 개발 > 사이드 뷰 게임' 카테고리의 다른 글
| Unity 2D - 사운드 조절 기능 추가 (3) | 2025.08.02 |
|---|---|
| Unity 2D 아이템 제작 - 저장 (0) | 2025.07.21 |
| Unity 2D 아이템 제작 -이미지 미리보기 (0) | 2025.07.20 |
| Unity 2D 아이템 제작 - 기본 베이스 (0) | 2025.07.20 |
| Unity 2D 보스 - 특수 공격 (0) | 2025.07.20 |