RoadRunner/Assets/Modern UI Pack/Scripts/Icon/AnimatedIconHandler.cs
2025-01-30 23:38:06 +01:00

55 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
namespace Michsky.MUIP
{
[RequireComponent(typeof(Animator))]
public class AnimatedIconHandler : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
{
[Header("Settings")]
public PlayType playType;
public Animator iconAnimator;
bool isClicked;
public enum PlayType
{
Click,
Hover,
None
}
void Start()
{
if (iconAnimator == null)
iconAnimator = gameObject.GetComponent<Animator>();
}
public void PlayIn() { iconAnimator.Play("In"); }
public void PlayOut() { iconAnimator.Play("Out"); }
public void ClickEvent()
{
if (isClicked == true) { PlayOut(); isClicked = false; }
else { PlayIn(); isClicked = true; }
}
public void OnPointerClick(PointerEventData eventData)
{
if (playType == PlayType.Click)
ClickEvent();
}
public void OnPointerEnter(PointerEventData eventData)
{
if (playType == PlayType.Hover)
iconAnimator.Play("In");
}
public void OnPointerExit(PointerEventData eventData)
{
if (playType == PlayType.Hover)
iconAnimator.Play("Out");
}
}
}