Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.EventSystems;
- public class UIButtonHoverScalerReset : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
- {
- [Header("Hover Scaling")]
- public float hoverScale = 1.2f;
- public float scaleSpeed = 10f;
- private Vector3 originalScale;
- private bool isHovered;
- void Awake()
- {
- originalScale = transform.localScale;
- }
- void OnEnable()
- {
- // Reset to original when menu reappears
- transform.localScale = originalScale;
- isHovered = false;
- }
- void Update()
- {
- Vector3 target = isHovered ? originalScale * hoverScale : originalScale;
- transform.localScale = Vector3.Lerp(transform.localScale, target, Time.deltaTime * scaleSpeed);
- }
- public void OnPointerEnter(PointerEventData eventData) => isHovered = true;
- public void OnPointerExit(PointerEventData eventData) => isHovered = false;
- // Reset scale on click (so it doesn’t stay big)
- public void OnPointerClick(PointerEventData eventData)
- {
- isHovered = false;
- transform.localScale = originalScale;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment