77 lines
1.7 KiB
C#
77 lines
1.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ErrorUIManager : MonoBehaviour
|
|
{
|
|
|
|
public CanvasGroup canvasGroup;
|
|
public RectTransform popupTransform;
|
|
|
|
|
|
public float scrollDuration = 20; // 滚动持续时间
|
|
|
|
public RectTransform rectTransform;
|
|
|
|
|
|
public float scroolTop;
|
|
public float initScroolTop;
|
|
|
|
private Tweener sequence;
|
|
|
|
private void OnEnable()
|
|
{
|
|
StartF();
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
sequence.Kill();
|
|
rectTransform.anchoredPosition = new Vector2(11.37f, initScroolTop);
|
|
}
|
|
|
|
void StartF()
|
|
{
|
|
// 设置初始缩放为零
|
|
popupTransform.localScale = Vector3.zero;
|
|
|
|
// 使用Dotween创建缩放动画
|
|
Sequence sequence = DOTween.Sequence();
|
|
sequence.Append(popupTransform.DOScale(new Vector3(1.2f, 1.2f, 1.2f), 0.5f)); // 放大效果
|
|
sequence.Append(popupTransform.DOScale(Vector3.one, 0.1f)); // 回弹效果
|
|
|
|
// 渐入动画
|
|
canvasGroup.alpha = 0f;
|
|
canvasGroup.DOFade(1f, 0.5f);
|
|
|
|
|
|
|
|
|
|
// 启动滚动动画
|
|
ScrollUI();
|
|
}
|
|
|
|
void ScrollUI()
|
|
{
|
|
// 从初始位置往上滚动
|
|
sequence= rectTransform.DOAnchorPos(new Vector2(11.37f,scroolTop), scrollDuration)
|
|
.OnComplete(() =>
|
|
{
|
|
// 动画结束后,延迟一段时间再重复滚动
|
|
Invoke("ResetAndScroll", 0);
|
|
});
|
|
}
|
|
|
|
void ResetAndScroll()
|
|
{
|
|
// 将UI重置到初始位置
|
|
rectTransform.anchoredPosition = new Vector2(11.37f, initScroolTop);
|
|
|
|
// 重新启动滚动动画
|
|
ScrollUI();
|
|
}
|
|
}
|