mirror of
https://github.com/DerTyp7/harvestdale-unity.git
synced 2025-10-29 20:52:10 +01:00
hotbar
This commit is contained in:
56
Assets/Scripts/UI/HotbarSlotUI.cs
Normal file
56
Assets/Scripts/UI/HotbarSlotUI.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System.Collections;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
public class HotbarSlotUI : MonoBehaviour
|
||||
{
|
||||
public int slotIndex;
|
||||
|
||||
private PlayerController playerController;
|
||||
|
||||
private InventoryItem invItem;
|
||||
|
||||
[SerializeField] private Image border;
|
||||
[SerializeField] private Image image;
|
||||
[SerializeField] private TextMeshProUGUI quantityText;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
playerController = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
|
||||
PlayerController.OnActiveSlotChanged += CheckSelectedSlot;
|
||||
CheckSelectedSlot();
|
||||
}
|
||||
|
||||
private void CheckSelectedSlot()
|
||||
{
|
||||
if (playerController.activeHotbarSlot == slotIndex)
|
||||
{
|
||||
border.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
border.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetInventoryItem(InventoryItem newInvItem)
|
||||
{
|
||||
invItem = newInvItem;
|
||||
UpdateSlot();
|
||||
}
|
||||
|
||||
private void UpdateSlot()
|
||||
{
|
||||
image.sprite = invItem?.item?.sprite ?? null;
|
||||
quantityText.SetText(invItem?.count.ToString() ?? "");
|
||||
if (image.sprite == null)
|
||||
{
|
||||
image.color = new Color(0, 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
image.color = Color.white;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user