mergemilitary/Assets/Scripts/UIs/PanelTips.cs

56 lines
2.1 KiB
C#
Raw Normal View History

2022-05-23 13:39:59 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class PanelTips : BasePanel
{
[SerializeField] Text mTxtTips;
[SerializeField] float mMoveVal1;
[SerializeField] float mMoveVal2;
private Sequence mTweenSequence;
public void ShowTips(string pTip)
{
mTxtTips.gameObject.SetActive(true);
mTxtTips.text = pTip;
FlyTo(mTxtTips);
}
private void FlyTo(Graphic graphic)
{
RectTransform rt = graphic.rectTransform;
Vector3 tPos = rt.localPosition;
tPos.y = 0;
rt.localPosition = tPos;
Color c = graphic.color;
c.a = 0;
graphic.color = c; //先将字体透明
if (mTweenSequence != null && mTweenSequence.IsPlaying())
{
mTweenSequence.Kill();
}
mTweenSequence = DOTween.Sequence(); //创建空序列
Tweener move1 = rt.DOMoveY(rt.position.y + mMoveVal1, 0.5f); //创建向上移动的第一个动画
Tweener move2 = rt.DOMoveY(rt.position.y + mMoveVal2, 0.5f); //创建向上移动的第二个动画
Tweener alpha1 = graphic.DOColor(new Color(c.r, c.g, c.b, 1), 0.5f); //创建Alpha由0到1渐变的动画
Tweener alpha2 = graphic.DOColor(new Color(c.r, c.g, c.b, 0), 0.5f); //创建Alpha由1到0渐变的动画
mTweenSequence.Append(move1); //先添加向上移动的动画
mTweenSequence.Join(alpha1); //同时执行Alpha由0到1渐变的动画
mTweenSequence.AppendInterval(1); //延迟1秒钟
mTweenSequence.Append(move2); //添加向上移动的动画
mTweenSequence.Join(alpha2); //同时执行Alpha由1到0渐变的动画
mTweenSequence.onComplete = HideTip;
}
private void HideTip()
{
mTweenSequence = null;
mTxtTips.gameObject.SetActive(false);
Close();
}
}