ClientServer/Client/Assets/Scripts/Player/EquipmentItemEvents.cs
TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

99 lines
2.5 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using DG.Tweening;
public class EquipmentItemEvents : Selectable, IPointerDownHandler, IPointerUpHandler, IDragHandler, IPointerExitHandler
{
private int slotId;
Vector3 original;
protected override void Start()
{
base.Start();
original = gameObject.transform.position;
slotId = int.Parse(gameObject.name.Substring(15));
}
public override void OnSelect(BaseEventData eventData)
{
base.OnSelect(eventData);
}
public override void OnDeselect(BaseEventData eventData)
{
base.OnDeselect(eventData);
OnExit();
}
public override void OnPointerEnter(PointerEventData eventData)
{
base.OnPointerEnter(eventData);
transform.DOScale(Vector3.one * 1.15f, 0.1f).SetEase(Ease.InSine).SetUpdate(true);
}
public override void OnPointerExit(PointerEventData eventData)
{
base.OnPointerExit(eventData);
OnExit();
}
private void OnExit()
{
if (EventSystem.current.currentSelectedGameObject != null)
EventSystem.current.SetSelectedGameObject(null);
transform.DOScale(Vector3.one, 0.1f).SetEase(Ease.OutSine).SetUpdate(true);
}
public override void OnPointerDown(PointerEventData eventData)
{
base.OnPointerDown(eventData);
OnClick();
}
public void OnClick()
{
if (InventoryManager.Instance.equipmentItems[slotId] == -1)
return;
//Debug.Log(this.gameObject.name + " Was Clicked.");
gameObject.GetComponent<Image>().color = new Color(0.8f, 0.8f, 0.8f);
}
public override void OnPointerUp(PointerEventData eventData)
{
base.OnPointerUp(eventData);
OnClickUp();
}
public void OnClickUp()
{
if (InventoryManager.Instance.equipmentItems[slotId] == -1)
return;
gameObject.GetComponent<Image>().color = Color.white;
if (Vector3.Distance(transform.position, original) > 3)
{
}
else
{
if (InventoryManager.Instance.equipmentItems[slotId] != -1)
{
PacketManager.sendUnequipItem(slotId);
}
}
gameObject.transform.position = original;
}
public void OnDrag(PointerEventData eventData)
{
//if (InventoryManager.Instance.inventoryItems[slotId] == -1)
// return;
//transform.position += (Vector3)eventData.delta;
}
}