이 문서는 Unity에서 인벤토리 시스템을 구현한 InventoryManager 클래스의 전체 코드와 기능 개선 내용을 정리한 것입니다.
V키를 1초간 누르면 아이템 삭제void HandleItemDestruction()
{
if (currentState != InventoryState.Item) return;
if (Input.GetKey(KeyCode.V))
{
_vKeyHoldTime += Time.unscaledDeltaTime;
if (_vKeyHoldTime >= HoldThreshold)
{
DestroyCurrentItem();
_vKeyHoldTime = 0f;
}
}
else if (Input.GetKeyUp(KeyCode.V))
{
_vKeyHoldTime = 0f;
}
}
void DestroyCurrentItem()
{
if (_itemIndex < _items.Count)
{
var item = _items[_itemIndex];
if (item is IStatItem statItem)
statItem.RemoveStat(_playerController);
RemoveItem(item);
Destroy(item.gameObject);
RefreshUI();
HighlightCurrentSlot();
}
}
Vector3 dropPosition = itemSlots[_itemIndex].transform.position;
dropPosition.z = 0f;
oldItem.transform.position = dropPosition;
oldItem.gameObject.SetActive(true);
[... 전체 C# 코드 삽입 ...]