60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
using FMOD.Studio;
|
|
using FMODUnity;
|
|
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace NEG.UI.UnityUi.Buttons
|
|
{
|
|
[RequireComponent(typeof(ButtonSerializeFields))]
|
|
public class BaseButton : MonoBehaviour, ISelectHandler, IDeselectHandler, IPointerEnterHandler, IPointerExitHandler
|
|
{
|
|
public event Action OnButtonPressed;
|
|
|
|
protected ButtonSerializeFields serializeFields;
|
|
|
|
private bool isHovered;
|
|
|
|
public virtual void OnSelect(BaseEventData eventData)
|
|
{
|
|
if (serializeFields.Text)
|
|
serializeFields.Text.color = serializeFields.SelectedTextColor;
|
|
}
|
|
|
|
public void OnDeselect(BaseEventData eventData)
|
|
{
|
|
if (serializeFields.Text)
|
|
serializeFields.Text.color = serializeFields.DeselectedTextColor;
|
|
}
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
isHovered = true;
|
|
if (serializeFields.Text)
|
|
serializeFields.Text.color = serializeFields.SelectedTextColor;
|
|
}
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
isHovered = false;
|
|
if (serializeFields.Text)
|
|
serializeFields.Text.color = serializeFields.DeselectedTextColor;
|
|
}
|
|
|
|
protected virtual void Awake()
|
|
{
|
|
serializeFields = GetComponent<ButtonSerializeFields>();
|
|
serializeFields.Button.onClick.AddListener(OnClicked);
|
|
OnDeselect(null);
|
|
}
|
|
|
|
protected virtual void OnClicked()
|
|
{
|
|
OnDeselect(null);
|
|
isHovered = false;
|
|
OnButtonPressed?.Invoke();
|
|
}
|
|
}
|
|
}
|