2025-09-19 17:28:05 +08:00

51 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class ButtonScaleEffect : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
public float scaleTime = 0.2f; // 缩放所需的时间
public float scale = 1.1f;
private Vector3 originalScale; // 按钮的原始缩放值
private Vector3 targetScale; // 目标缩放值
private float currentTime; // 当前缩放时间
private bool isScalingUp; // 是否正在放大
private void Start()
{
// 记录按钮的原始缩放值
originalScale = transform.localScale;
targetScale = originalScale;
currentTime = scaleTime;
}
private void Update()
{
if (currentTime < scaleTime)
{
currentTime += Time.deltaTime;
// 使用Lerp方法实现平滑的缩放效果
transform.localScale = Vector3.Lerp(
isScalingUp ? originalScale : originalScale * scale,
targetScale,
currentTime / scaleTime
);
}
}
public void OnPointerDown(PointerEventData eventData)
{
// 当按钮被按下时设置目标缩放值为1.1倍,并开始计时
targetScale = originalScale * scale;
currentTime = 0f;
isScalingUp = true;
}
public void OnPointerUp(PointerEventData eventData)
{
// 当按钮被松开时,设置目标缩放值为原始值,并开始计时
targetScale = originalScale;
currentTime = 0f;
isScalingUp = false;
}
}