Unity

[내일배움캠프] Unity 에디터 스크립트 - 아이템 일괄 추가 버튼 만들기

오센치 2025. 6. 30. 21:43

오늘은 Unity의 커스텀 에디터 창에서 원래는 하나씩만 추가하던 아이템을 버튼 한 번으로 전부 추가하도록 스크립트를 수정해봤습니다.

기존 기능

  • 에디터 창에서 아이템 드롭다운 목록 중 하나를 선택
  • “Add Item” 버튼을 누르면 그 하나만 인벤토리에 추가
 

var names = _items.Select(x => x.ItemName).ToArray(); _selectedIndex = EditorGUILayout.Popup("테스트 아이템", _selectedIndex, names); var selectedItem = _items[_selectedIndex]; _inventory.AddItem(selectedItem, 1);

 

문제점

한 번에 하나씩만 추가 가능해서, 테스트할 때 여러 아이템을 넣으려면 너무 번거로움

 

 


변경할 동작

버튼 하나로 모든 아이템을 한꺼번에 추가

 

 


변경 내용

기존 버튼 코드

if (GUILayout.Button("Add Item")) { _inventory.AddItem(selectedItem, 1); }

 

 

변경 후 코드

if (GUILayout.Button("Add All Items")) { foreach (var item in _items) { _inventory.AddItem(item, 1); } Debug.Log($"[TestItem] {_items.Length}개 아이템을 인벤토리에 추가했습니다."); }

 

 

 


결과

"Add All Items" 버튼을 누르면

  • _items 리스트의 모든 아이템을 순회
  • 인벤토리에 1개씩 추가
  • 로그로 몇 개 추가했는지 출력

 

 


테스트 개선 사항

✅ EditorGUILayout.Button()으로 버튼 생성
✅ foreach 문으로 리스트 순회
✅ 디버그 로그로 결과 확인
✅ 필요 없는 드롭다운, 라벨 등 제거해서 UI 단순화

 

 


느낀 점

에디터 확장으로 작업을 훨씬 편하게 할 수 있다.

간단한 기능도 반복 작업을 줄이면 시간 절약 효과가 크다.

UI 요소를 잘 정리하면 유지보수도 쉽다.

 

 


마무리

오늘은 버튼 하나로 모든 아이템을 추가하는 기능을 추가해봤습니다.
테스트 툴을 좀 더 편리하게 만들어서 앞으로 아이템 데이터 관리가 훨씬 수월해질 것 같습니다.