DoTween 学习之UI动画的前放和倒放的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a435931517/article/details/80599466

记笔记,记笔记这里写图片描述
UI动画的前放和倒放的效果是这样的:

UI动画前放和倒放

UI动画的前放和倒放方法一:
利用一个布尔变量简单暴力的判断UI的位置,然后通过DOLocalMove()实现UI的动画
具体代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class DoMove_01 : MonoBehaviour {

    public RectTransform mBagPanelRectTransform;
    private bool _bIn = false;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }
    public void Onclick()
    {
        if(!_bIn)
        {
            mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);//控制本地坐标移动mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);//控制本地坐标移动
            _bIn = true;
        }
        else
        {
            mBagPanelRectTransform.DOLocalMove(new Vector3(680f, 0f, 0f), 0.3f);
            _bIn = false;
        }

    }
}

UI动画的前放和倒放方法二:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class DoMove_02 : MonoBehaviour {

    public RectTransform mBagPanelRectTransform;
    private bool bin = false;

    public void OnClick()
    {
        if(!bin)
        {

            Tweener tweener = mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);
            tweener.SetAutoKill(false);// 不让Do方法返回的Tweener对象自动销毁,默认情况下是自动销毁的。
            bin = true;

        }
        else
        {
            mBagPanelRectTransform.DOPlayBackwards();//倒放
            bin = false;
        }
    }
}

第二种方法由于需要一直创建对象因此,会比较消耗性能,如图所示:

这里写图片描述
因此将创建对象这部分放入void Start()方法中也就得到了第三种方法
UI动画的前放和倒放方法三:
就是利用 Dotween中对应的DOPlayForward()和DOPlayBackwards()方法实现UI动画的正放和倒放,具体代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class DoMove_02 : MonoBehaviour {

    public RectTransform mBagPanelRectTransform;
    private bool bin = false;

     void Start()
    {
        Tweener tweener = mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);
        tweener.SetAutoKill(false);// 不让Do方法返回的Tweener对象自动销毁,默认情况下是自动销毁的。
        tweener.Pause();
    }
    public void OnClick()
    {
        if(!bin)
        {

            mBagPanelRectTransform.DOPlayForward();//前放
            bin = true;

        }
        else
        {
            mBagPanelRectTransform.DOPlayBackwards();//倒放
            bin = false;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/a435931517/article/details/80599466