Files
Webview_SgConfig_Unity_IOS/Assets/Scripts/Toast.cs
T

49 lines
1.3 KiB
C#
Raw Normal View History

2026-07-15 16:19:07 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
public class Toast : MonoBehaviour
{
public Text toastText;
private RectTransform _rectTransform;
private CanvasGroup _canvasGroup;
private Vector2 _startPosition;
private Sequence _sequence;
private void Awake()
{
_rectTransform = transform as RectTransform;
_canvasGroup = gameObject.AddComponent<CanvasGroup>();
if (_rectTransform != null) _startPosition = _rectTransform.anchoredPosition;
}
public void ShowToast(string str, float duration = 1.5f, float fadeOutDuration = 1.5f, float moveDistance = 250f)
{
toastText.text = str;
_sequence = DOTween.Sequence();
_sequence
.Append(_rectTransform.DOAnchorPosY(_startPosition.y + moveDistance, duration)) // 上升动画
.Join(_canvasGroup.DOFade(0f, fadeOutDuration)) // 淡出动画
.OnComplete(() => ToastPool.Instance.ReturnToPool(this)); // 动画结束后隐藏
}
public void Reset()
{
// 重置透明度
_canvasGroup.alpha = 1f;
// 重置位置
_rectTransform.anchoredPosition = _startPosition;
_rectTransform.gameObject.SetActive(false);
}
}