| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | using System.Collections;using System.Collections.Generic;using LitMotion;using UnityEngine;using UnityEngine.EventSystems;using RectTransform = UnityEngine.RectTransform;public class ButtonAnimation : MonoBehaviour, IPointerDownHandler, IPointerUpHandler{    // [Header("Components")] [SerializeField]    RectTransform rectTransform;    // [SerializeField] TMP_Text text;    [Header("Settings")] [SerializeField] float duration = 0.07f;    [SerializeField] Ease ease = Ease.OutQuad;    [SerializeField] Vector3 animationSizeDelta = new(0.2f, 0.2f);        public bool isEnabled = true;    // [SerializeField] float animationFontSizeDelta = 1f;    Vector3 initialSize;    float initialFontSize;    CompositeMotionHandle motionHandles = new();    void Start()    {        rectTransform = GetComponent<RectTransform>();        initialSize = rectTransform.localScale;        // initialFontSize = text.fontSize;    }    void OnDestroy()    {        motionHandles.Cancel();    }    public void OnPointerDown(PointerEventData eventData)    {        if(!isEnabled)            return;        motionHandles.Cancel();        LMotion.Create(rectTransform.localScale, initialSize - animationSizeDelta, duration)            .WithEase(ease).Bind(Bind)            // .BindToSizeDelta(rectTransform)            .AddTo(motionHandles);        // LMotion.Create(text.fontSize, initialFontSize - animationFontSizeDelta, duration)        //     .WithEase(ease)        //     .BindToFontSize(text)        //     .AddTo(motionHandles);    }    private void Bind(Vector3 size)    {        rectTransform.localScale = size;    }    public void OnPointerUp(PointerEventData eventData)    {        if(!isEnabled)            return;        motionHandles.Cancel();        LMotion.Create(rectTransform.localScale, initialSize, duration)            .WithEase(ease)            .Bind(Bind)            .AddTo(motionHandles);    }}
 |