🎯 목표
- 게임 플레이 도중 숫자 키(1~0)를 이용해 슬롯을 선택하고, 선택된 아이템을 사용할 수 있는 툴바 시스템을 구현하는 것이 목표였다.
- 아이템은 포션과 같은 소비형 아이템과 장비형 아이템으로 나뉘며, 툴바 슬롯에 등록된 아이템을 사용하면 해당 효과가 적용되도록 만들었다.
🧱 주요 클래스 구성
InputAction: 숫자 키 입력 감지 및 슬롯 선택
UseItem(): 아이템 사용 처리
ApplyPotionEffect(): 아이템 효과 적용
AddItemToSlot(): 슬롯 관리 및 아이템 추가
public void OnSelectSlot(InputAction.CallbackContext context)
{
if (context.phase == InputActionPhase.Started)
{
string keyString = context.control.name;
if (int.TryParse(keyString, out int keyNum))
{
int slotIdx = keyNum - 1 != -1 ? keyNum - 1 : itemSlots.Length - 1;
ItemSlot slot = itemSlots[slotIdx];
if (selectedSlot != null && selectedSlot != slot)
{
selectedSlot.DeSelectSlot();
ClearHand();
}
selectedSlot = slot;
selectedSlot.SelectSlot();
}
}
}
InputAction.CallbackContext는 Input System에서 이벤트가 발생했을 때 전달되는 입력 정보 컨테이너
- 어떤 키가 눌렸는지를 판별해서 해당 인덱스의 아이템 슬롯을 선택하는 역할을 수행한다.
📃 ItemSlot 클래스
SetSlot(): 슬롯에 아이템 등록, 아이템 수량 표시 및 스택 처리
SelectSlot() / DeSelectSlot(): 슬롯 선택/해제 시 외곽선 효과
ClearSlot(): 아이템 사용 시 수량 감소 및 초기화
슬롯에 아이템이 추가 가능한지 판별하는 메서드
public bool CanAddItem(ItemData data)
{
if (dataSO != null)
{
if (data == dataSO && quantity < dataSO.maxAmount)
return true;
else
return false;
}
return true;
}
💻 실제 화면
