using UnityEngine;
using System.Collections;
using DG.Tweening;
using System.Collections.Generic;
///
/// UI的doTween插件,搞一个UI的弹出或者效果
///
public class UIDoTweenAnimation : MonoBehaviour
{
///
///
///
private RectTransform panelTransform;
///
/// 动画
///
private Tweener tweener = null;
///
/// 特效种类,0就是从下往上,1是从左往右,2是从右往左.
///
private int KindOfEffect;
///
///
///
public void OnEnable()
{
////开始播放动画
////启动动画播放
}
private void Awake()
{
children = new Dictionary();
for (int i = 0; i < this.transform.childCount; i++)
{
GameObject go = this.transform.GetChild(i).gameObject;
children.Add(go, go.transform.localPosition);
}
}
///
///
///
private Dictionary children = new Dictionary();
///
///
///
private void StartPlayDoTween()
{
if (tweener != null && tweener.IsPlaying())
{
tweener.Kill();
ResetToDefaultPos();
}
for (int i = 0; i < this.transform.childCount; i++)
{
GameObject g = this.transform.GetChild(i).gameObject;
RectTransform panelTransform = g.GetComponent();
Vector3 destPos = children[g];
if (KindOfEffect == 0)
{
transform.localPosition = new Vector3(destPos.x, -1920, destPos.z);
tweener = panelTransform.DOLocalMove(destPos, 0.3f);
tweener.SetEase(Ease.Linear);//动画曲线
tweener.SetDelay(i * 0.01f);
}
else if (KindOfEffect == 1)
{
transform.localPosition = new Vector3((destPos.x - 1080), destPos.y, destPos.z);
tweener = panelTransform.DOLocalMove(destPos, 0.2f);
tweener.SetEase(Ease.InOutQuad);//动画曲线
tweener.SetDelay(i * 0.02f);
}
else if (KindOfEffect == 2)
{
transform.localPosition = new Vector3((destPos.x + 1080), destPos.y, destPos.z);
tweener = panelTransform.DOLocalMove(destPos, 0.2f);
tweener.SetEase(Ease.InOutQuad);//动画曲线
tweener.SetDelay(i * 0.1f);
}
}
}
///
///
///
public void OnDisable()
{
if (tweener != null && tweener.IsPlaying())
{
tweener.Kill();
}
ResetToDefaultPos();
}
///
///
///
public void OnDestory()
{
panelTransform.DOKill();
}
///
/// 设置UI到默认位置
///
private void ResetToDefaultPos()
{
foreach (GameObject g in children.Keys)
{
RectTransform tc = g.GetComponent();
if (tc != null)
{
tc.anchoredPosition3D = children[g];
}
}
}
}