[내일배움캠프 TIL] 29. 드래그 앤 드롭, 스택 가능한 아이템

2023. 10. 27. 08:03내일배움캠프 Unity

[최종프로젝트 2]

오늘 작업은

1. 인벤토리 아이템 드래그 앤 드롭

2. 아이템 사용 시 바로 사용되지 않고 아이템의 정보 창 띄워주기

3. 소모품 등 보통 여러개 얻는 아이템은 "스택 가능한 아이템"이라는 변수를 주고 아이템 사용시 개수를 차감

 

1. 인벤토리 아이템 드래그 앤 드롭

  • 유니티의 EventSystem에서 제공하는 IBeginDragHandler, IDragHandler, IEndDragHandler를 사용해 드래그 할 아이템의 드래그 시작, 드래그 중, 드래그 종료의 조건을 가져온다.
  • 드래그가 시작될 때 현재 슬롯의 Transform을 저장하고 드래그가 끝난곳의 아이템과 현재 슬롯(드래그 이전 슬롯)의 아이템을 교환하고 슬롯의 정보를 교환한다.
  • 드래그 중 드래그 되는 아이템을 가장 위에 보이게 하기위해 transform.SetParent(transform.root), transform.SetAsLastSibling() 메서드를 사용했다.

 

2. 아이템 사용시 바로 사용되지 않고 아이템의 정보 창 띄워주기

  • 델리게이트를 사용해 누른 아이템의 정보를 전달해 누른 아이템에 따라 텍스트와 Submit의 기능이 달라지게 구현

 

 

3. "스택 가능한 아이템" > 아이템 사용시 개수를 차감

  • '검' 같은 장비 아이템은 착용하거나 판매 시 사라짐
  • '포션' 같은 소비 아이템은 획득 시 개수가 올라가며 사용시에도 개수를 차감
  • 마지막 개수를 사용하면 아이템 삭제