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

本文介绍了三种Unity中实现UI动画正放与倒放的方法。第一种使用布尔变量结合DOLocalMove()实现;第二种创建Tween对象并利用DOPlayBackwards()实现倒放;第三种在Start()中初始化Tween对象,结合DOPlayForward()和DOPlayBackwards()实现动画播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记笔记,记笔记这里写图片描述
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;
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值