DOtween 教程

本文详细介绍了Unity3D中使用DOtween库进行UI动画的各种方法,包括简单移动、DOMove、动画重播、from、动画曲线、动画生命周期函数以及颜色和透明度的变化。通过实例代码展示了如何实现UI元素的平滑动画效果,并控制动画的播放方向和重复次数。

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

方法一:简单方法(UI)


using DG.Tweening;

public class CubeMove : MonoBehaviour {

    public Vector3 myValue=new Vector3 (1249,0,0) ;//UI的初始位置

    public RectTransform img ;//UI

void Start () {
        //对变量做一个动画  

        DOTween.To(() => myValue, x => myValue = x, new Vector3(0, 0, 0), 2);

                                                                     //运动到 (0,0,0) ,时间为2 s  

}

void Update () {
        img.localPosition   = myValue;
}

}


方法二:domove方法

using DG.Tweening;


public class IgmMove : MonoBehaviour {
    public RectTransform igm;//UI
    public void onClick()
    {
        // igm.DOMove(new Vector3(0, 0, 0), 1);
        //从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
        igm.DOLocalMove(new Vector3(0, 0, 0), 2);
        //从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)
    }

}

方法三:动画重播

(一)

using DG.Tweening;


public class IgmMove : MonoBehaviour {
    public RectTransform igm;
    private bool isTrue = false;
    public void onClick()
    {
        if(isTrue==false )
        {
            // igm.DOMove(new Vector3(0, 0, 0), 1);
            //从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
            // igm.DOLocalMove(new Vector3(0, 0, 0), 2);//默认动画播放完成会被销毁
            //从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)

            //Tweener对象保存这个动画的信息,每次调用do类型的方法都会创建tweener对象,这个对象是dotween来管理
            Tweener tweener = igm.DOLocalMove(new Vector3(0, 0, 0), 1);
            tweener.SetAutoKill(false);//自动销毁设置false
            isTrue = true;
        }else
        {
            //倒播
            igm.DOPlayBackwards();
            isTrue = false ;
        }
    }
}

(二)

using DG.Tweening;

public class IgmMove : MonoBehaviour {

    public RectTransform igm;
    private bool isTrue = false;
     void Start()
    {
        //Tweener对象保存这个动画的信息,每次调用do类型的方法都会创建tweener对象,这个对象是dotween来管理
        Tweener tweener = igm.DOLocalMove(new Vector3(0, 0, 0), 1);
        tweener.SetAutoKill(false);//自动销毁设置false 
        tweener.Pause();//动画暂停
        //Tweener对象保存这个动画的信息,只创建一次
    }
    public void onClick()
    {
        if(isTrue==false )
        {
            // igm.DOMove(new Vector3(0, 0, 0), 1);
            //从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
            // igm.DOLocalMove(new Vector3(0, 0, 0), 2);//默认动画播放完成会被销毁
            //从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)

            // igm.DOPlay();//动画播放一次
            igm.DOPlayForward();//动画向前播放
            isTrue = true;
        }else
        {
            //倒播
            igm.DOPlayBackwards();//动画向后播放
            isTrue = false ;
        }
    }

}

方法四:from

      // transform.DOMoveX(5, 2);//  //默认从当前位置运动到目标位置(距离,时间)
        // transform.DOMoveX(5, 2).From();//默认从目标位置运动到当前位置(距离,时间)

        transform.DOMoveX(5, 1).From(true);//true为相对坐标。false绝对坐标。

方法五:动画曲线

  private bool isTrue = true;


    void Start()
    {


        Tweener twee = transform.DOLocalMoveY(0, 2);
       twee.SetAutoKill(false);
        twee.Pause();
        twee.SetEase(Ease.InOutBack);//动画曲线
        twee.SetLoops(2);//动画播放几次
        twee.OnComplete(onTweenComplete); //动画播放完成后执行
    }


    public void onClick()
    {
        if (isTrue)
        {
            transform.DOPlayForward();
            isTrue = false;
        }
        else
        {
            transform.DOPlayBackwards();
            isTrue = true ;
        }
    }
    //动画播放完成后
    void onTweenComplete()
    {
        print("动画播放完成!");
    }

同的曲线



方法六:动画生命周期函数


方法七:颜色和透明

    public Image ban;
    void Start()
    {
        ban.DOColor(Color.red, 2);//颜色改变
        ban.DOFade(0, 2);//透明度改变
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值