H_SafeExperienceDrivingSystem/U3D_DrivingSystem/Assets/Script/Manaegr/ErrorUIManager.cs

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