DoTween相关疑点

using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
public class MyButton : MonoBehaviour
{
    public RectTransform panelTransform;
    private bool isIn = false;//界面是否进入执行位置的标志位.
    void Start()
    {
        Tweener tweener = panelTransform.DOLocalMove(new Vector3(0, 0, 0), 2);//DOLocalMove这个函数的返回值是他的动画效果.这个返回值(动画效果)在播放玩一次不接收的话会自动销毁.如果销毁之后,就不能调用DOPlayForward/DOPlayBackwards这2个函数了.
        tweener.SetAutoKill(false);//表示让接收的返回值不销毁.
        tweener.Pause();//这个是在Start方法里面,并不需要在开始的时候就播放动画,而是在按下button之后在调用动画,所以在开始执行Start方法的时候先暂停动画的播放.
        //此外上面这个代码放在Start方法里面,而不是放在Onclick里面的原因:因为每次播放完就会生成一个动画,如果放在OnClick方法里面,每次点击按钮都会生成一个动画,如果多次点击按钮,会存储非常多的返回动画,浪费性能,所以在这里如果放在Start里面执行的话指挥生成一次返回动画.
    }
    public void OnClick()//这个方法在Button的里面每次点击都会执行的代码.
    {
        if (isIn==false)//如果没有进入指定位置
        {
            panelTransform.DOPlayForward();//动画正序播放一次.这里之所以用DOPlayForward而没有用DOPlay是因为,DOPlayForward/DOPlayBackwards是一对,可以反复调用.
            //panelTransform.DOPlay();//动画只播放一次.
            isIn = true;
        }
        else
        {
            panelTransform.DOPlayBackwards();//动画倒叙播放一次.
            isIn = false;
        }
    }
}

你可能感兴趣的:(DoTween相关疑点)