neon_run/Assets/Scripts/CustomButton.cs
2025-11-24 09:36:52 +05:30

45 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using DG.Tweening;
[RequireComponent(typeof(EventTrigger ))]
public class CustomButton : MonoBehaviour
{
EventTrigger eventTrigger;
public float scaleAmount = 1.1f;
public float shakeAmount = 0.1f;
public int shakeVibrato = 10;
public float shakeRandomness = 90;
public bool shakeFadeOut = true;
public Ease easeMode = Ease.OutBack;
public float scaleDuration = 0.1f;
public float shakeDuration = 0.1f;
void Start()
{
eventTrigger = GetComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.PointerEnter;
entry.callback.AddListener((data) => { OnPointerEnter((PointerEventData)data); });
eventTrigger.triggers.Add(entry);
entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.PointerExit;
entry.callback.AddListener((data) => { OnPointerExit((PointerEventData)data); });
eventTrigger.triggers.Add(entry);
}
void OnPointerEnter(PointerEventData eventData)
{
transform.DOScale(scaleAmount, scaleDuration).SetEase(easeMode);
transform.DOShakePosition(shakeDuration, shakeAmount, shakeVibrato, shakeRandomness, shakeFadeOut, true).SetEase(easeMode);
}
void OnPointerExit(PointerEventData eventData)
{
transform.DOScale(1f, scaleDuration).SetEase(easeMode);
transform.DOShakePosition(shakeDuration, shakeAmount, shakeVibrato, shakeRandomness, shakeFadeOut, true).SetEase(easeMode);
}
}