99 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|