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(); } }