Unity中DOTween的个人笔记

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