Unity3D 学习日记(八) DoTween学习笔记之Tweener(二)

如果你使用了DoTween的时候会发现DoTween动画会默认播放状态,但是我们有很多UI动画并没有一开始就不断播放的功能因此我们需要修改动画播放的状态以及其他属性的时候该怎么办呢?

你可能注意到了DoTween所创建的动画都是默认Play状态以及播放完毕后会自动销毁动画,避免动画占用或者消耗内存。但是很多UI动画都是可以不断重复播放的,如果不断创建和销毁动画这样会消耗很多内存以及资源的,在游戏中这种情况一定要避免,为此DoTween提供了一个类方便我们进行动画状态以及属性等进行管理和修改等,DoTween的动画状态以及属性都可以通过Tweener类进行统一的管理和修改,所以Tweener也可以所示DoTween的核心功能之一,是值得我们去研究和学习的一个函数。

这里我简单的介绍一下Tweener类比较常用的一些函数,以及Tweener的简单的用法。

详细情况我就直接通过注释,代码如下:

using UnityEngine;
using DG.Tweening;
public class MyButton : MonoBehaviour {

    public RectTransform panelTranform;
    private bool isIn = false;
    public LoopType loopType;                  //循环的模式

    void Start()
    {
        //panelTranform.DOMove(Vector3.zero, 1);     //这个是修改UGUI的世界坐标
        //创建一个简单位移动画,并将动画赋值给一个Tweener进行管理
        Tweener paneltweener = panelTranform.DOLocalMove(Vector3.zero, 2f); //这个是修改UGUI的局部坐标,相对与父类的局部坐标
        //多次调用DOTween动画会影响性能
        //DOTween默认动画播放完毕时会自动销毁动画
        //Tweener对象保存这个动画
        
        paneltweener.SetAutoKill(false);              //禁止销毁动画
        paneltweener.Pause();                         //停止播放动画
        //paneltweener.SetDelay(0.5f);                //设置动画延迟播放
        //paneltweener.SetEase(Ease.INTERNAL_Zero);   //设置动画运动的模式
        //paneltweener.SetLoops(-1);                  //设置循环播放 (当参数为-1的时候循环播放;当参数>=0的时候则表示循环的次数;0的时候表示循环一次)
        //paneltweener.SetLoops(-1,loopType)          //设置循环播放并且设置动画循环的模式
        //paneltweener.PlayForward();                 //播放
        //paneltweener.PlayBackwards();               //倒放
        //paneltweener.OnComplete(OnComplete);        //动画播放完毕后执行,动画倒放时候不执行
        //paneltweener.OnStart(OnStart);              //动画第一次播放时执行
        //paneltweener.OnUpdate(OnUpdate);            //动画播放时不断执行
        //paneltweener.OnPlay(OnPlay);                //动画开始播放时执行
        //paneltweener.OnStepComplete(OnStepComplete);//动画播放且倒放都会执行一次,且执行顺序先于OnComplete
        //paneltweener.OnKill(OnKill);                //动画删除的时候执行事件
        //paneltweener.Kill(true);                    //删除动画且组件会直接到达指定位置
    }

    private void OnKill()
    {
        Debug.Log("This is OnKill");
    }

    private void OnStepComplete()
    {
        Debug.Log("This is OnStepComplete");
    }

    private void OnPlay()
    {
        Debug.Log("This is OnPlay");
    }

    private void OnUpdate()
    {
        Debug.Log("This is OnUpdate");
    }

    private void OnStart()
    {
        Debug.Log("动画第一次播放");
    }
    public void OnClick()
    {
        
        if(!isIn)
        {
            //注释掉的方法是效果都是一样的
            //panelTranform.DOPlay();                     //动画只会播放一次
            panelTranform.DOPlayForward();                //前进
            //paneltweener.PlayForward();                 //播放
            isIn = true;
        }
        else
        {
            //paneltweener.PlayBackwards();               //倒放
            panelTranform.DOPlayBackwards();              //倒放
            isIn = false;
        }
    }
    void OnComplete()
    {
        Debug.Log("动画播放完毕!");
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值