2026-03-31 아이템 사용 진행중

This commit is contained in:
2026-03-31 01:25:58 +09:00
parent f8773fa168
commit 71dfbf1af2
51 changed files with 5265 additions and 70 deletions

View File

@@ -3,7 +3,7 @@
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class InventorySlot : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler, IPointerMoveHandler
public class InventorySlot : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler, IPointerMoveHandler, IPointerClickHandler
{
public int SlotIndex; // 슬롯의 고유 번호
private RectTransform _rectTransform; //슬롯박스 사각형
@@ -40,6 +40,71 @@ private void Start()
}
public void ClearSlot()
{
_iconImage.sprite = null;
_iconImage.enabled = false;
_stackText.text = "";
_stackText.enabled = false;
_rarityImage.sprite = _rarity_None_Sprite;
//SlotBg.sprite = RarityImage.sprite;
}
public void UpdateSlotUI()
{
if (currentItem == null)
{
ClearSlot();
return;
}
if (currentItem.Data.Icon != null)
{
_iconImage.sprite = currentItem.Data.Icon;
_iconImage.enabled = true;
}
if (currentItem.Data.IsStackable)
_stackText.text = currentItem.CurrentStack.ToString();
else
_stackText.text = "";
_stackText.enabled = true;
switch (currentItem.Data.Rarity)
{
case 1:
{
_rarityImage.sprite = _rarity_1_Sprite;
}
break;
case 2:
{
_rarityImage.sprite = _rarity_2_Sprite;
}
break;
case 3:
{
_rarityImage.sprite = _rarity_3_Sprite;
}
break;
case 4:
{
_rarityImage.sprite = _rarity_4_Sprite;
}
break;
default:
{
_rarityImage.sprite = _rarity_None_Sprite;
}
break;
}
//SlotBg.sprite = _rarityImage.sprite;
}
// 아이템 데이터 설정 및 UI 갱신
public void SetItem(ItemInstance newItem)
{
@@ -119,74 +184,19 @@ public void OnPointerExit(PointerEventData eventData)
GameManager.Instance.InGameUI.TooltipUI.HideTooltip();
}
public void ClearSlot()
public void OnPointerClick(PointerEventData eventData)
{
_iconImage.sprite = null;
_iconImage.enabled = false;
_stackText.text = "";
_stackText.enabled = false;
_rarityImage.sprite = _rarity_None_Sprite;
//SlotBg.sprite = RarityImage.sprite;
}
public void UpdateSlotUI()
{
if (currentItem == null)
// 우클릭
if (eventData.button == PointerEventData.InputButton.Right)
{
ClearSlot();
return;
ItemUse();
}
if (currentItem.Data.Icon != null)
{
_iconImage.sprite = currentItem.Data.Icon;
_iconImage.enabled = true;
}
if (currentItem.Data.IsStackable)
_stackText.text = currentItem.CurrentStack.ToString();
else
_stackText.text = "";
_stackText.enabled = true;
switch (currentItem.Data.Rarity)
{
case 1:
{
_rarityImage.sprite = _rarity_1_Sprite;
}
break;
case 2:
{
_rarityImage.sprite = _rarity_2_Sprite;
}
break;
case 3:
{
_rarityImage.sprite = _rarity_3_Sprite;
}
break;
case 4:
{
_rarityImage.sprite = _rarity_4_Sprite;
}
break;
default:
{
_rarityImage.sprite = _rarity_None_Sprite;
}
break;
}
//SlotBg.sprite = _rarityImage.sprite;
}
public void ItemUse()
{
GameManager.Instance.ItemEffect.ItemUse(currentItem);
currentItem.CurrentStack -= 1;
UpdateSlotUI();
}
}