using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class DoTweenTest : MonoBehaviour
{
Image mask;
Tween maskTween;
void Start()
{
mask = GetComponent<Image>();
//1、doTween的静态方法
//DOTween.To(
// ()=>
// mask.color //我们想要改变的对象值
// ,toColor //每次DoTween经过计算得到的结果(当前值到目标值的插值)
// =>mask.color=toColor,//将计算结果赋值给我们想要改变的对象值
// new Color(0,0,0,0),2f //目标值,完成动画的时间
// );
//2、DoTween直接作用于transform的方法
//Tween tween = transform.DOLocalMoveX(300, 1);
tween.PlayForward(); //正播
//tween.PlayBackwards();//倒播
结论:直接倒着播放还是先正播再倒播,不存在直接倒播的情况
//3、动画的循环使用
maskTween = transform.DOLocalMoveX(400, 0.5f);
maskTween.SetAutoKill(false);
maskTween.Pause();
//4、动画的事件回调(OnComplete中的参数也就是当动画执行完毕后会执行的方法)
Tween tween = transform.DOLocalMoveX(400, 2);
tween.OnComplete(()=>{
this.gameObject.SetActive(false); });
//5、设置动画的缓动函数以及循环形状以及次数
tween.SetEase(Ease.OutElastic);
tween.SetLoops(-1,LoopType.Incremental); //会一直向前运动
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
//结论:Tween对象的play方法只能播一次(相对于倒播),不能连续倒播
//maskTween.Play();
maskTween.PlayForward();
}
if (Input.GetMouseButtonDown(1))
{
maskTween.PlayBackwards();
}
}
}