56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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();
 | |
|     }
 | |
| } |