1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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);
- // [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)
- {
- 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)
- {
- motionHandles.Cancel();
- LMotion.Create(rectTransform.localScale, initialSize, duration)
- .WithEase(ease)
- .Bind(Bind)
- .AddTo(motionHandles);
- }
- }
|