Unity之DoTween插件的使用

1、DoTween.To()

效果展示

移入

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;  //引入命名空间

public class Test01 : MonoBehaviour
{
    
    
    public Vector3 myValue = new Vector3(1000, 0, 0);  //初始位置

    public RectTransform taskPanelTransform;

    // Start is called before the first frame update
    void Start()
    {
    
    
        //对变量做一个动画(通过插值的方式去修改一个值的变化)
        DOTween.To(() => myValue, x => myValue = x, new Vector3(0, 0, 0), 3);
    }

    // Update is called once per frame
    void Update()
    {
    
    
        //taskPanelTransform.position = myValue;  //修改世界坐标

        taskPanelTransform.localPosition = myValue;  //修改局部坐标
    }
}

2、动画前放和倒放

效果展示

动画的前放和倒放

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;  //引入命名空间

public class Test02 : MonoBehaviour
{
    
    
    public RectTransform panelTransform;

    private bool isIn = false;  //是否进入

    private void Start()
    {
    
    
        //panelTransform.DOMove(new Vector3(0, 0, 0), 1);  //让物体从当前位置动画到(0,0,0)的位置,时间为1秒(修改世界坐标),默认动画播放完成会被销毁

        //Tweener对象保存这个动画的信息 每次调用Do类型的方法都会创建一个tweener对象,这个对象是dotween来管理的
        Tweener tweener = panelTransform.DOLocalMove(new Vector3(0, 0, 0), 1);  //(修改局部坐标)

        tweener.SetAutoKill(false);  //把autokill 自动销毁设置为false

        tweener.Pause();  //暂停动画
    }

    public void OnButtonClick()
    {
    
    
        if(isIn==false)
        {
    
    
            panelTransform.DOPlayForward();  //前放

            isIn = true;
        }
        else
        {
    
    
            panelTransform.DOPlayBackwards();  //倒放

            isIn = false;
        }
    }
}

3、From Tweens用法

效果展示

From Tween用法

代码

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

public class Test03 : MonoBehaviour
{
    
    
    // Start is called before the first frame update
    void Start()
    {
    
    
        //当前位置1

        //默认是3秒内从当前位置1移动到目标位置5
        //transform.DOMoveX(5, 3);

        //加上From()方法以后表示3秒内从目标位置5移动到当前位置1
        //transform.DOMoveX(5, 3).From();

        //加上true参数以后表示3秒内从相对目标位置6移动到当前位置1
        transform.DOMoveX(5, 3).From(true);
    }
}

4、动画属性设置

效果展示

动画属性设置

代码

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

public class Test04 : MonoBehaviour
{
    
    
    // Start is called before the first frame update
    void Start()
    {
    
    
        //当前位置1000

        Tweener tweener = transform.DOLocalMoveX(0, 3);  //3秒内从当前位置1000移动到目标位置0

        tweener.SetEase(Ease.OutBack);  //修改动画曲线

        tweener.SetLoops(2);  //设置动画循环次数

        tweener.OnComplete(OnTweenComplete);  //当动画播放完成时会调用该事件
    }

    private void OnTweenComplete()
    {
    
    
        Debug.Log("动画播放完毕!");
    }
}

5、文字动画

效果展示

文字动画

代码

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

public class Test05 : MonoBehaviour
{
    
    
    private Text text;

    // Start is called before the first frame update
    void Start()
    {
    
    
        text = this.GetComponent<Text>();
        
        text.DOText("允许到达目的地的路途有一些坎坷 允许自己偶尔不开心不聪明 也允许偶尔做得不够好 但不会轻易放弃 时间在走 很多事都会过去都会慢慢变好", 10);
        
		text.DOColor(Color.red, 10);  //修改文字的颜色
		
		text.DOFade(1, 3);  //修改文字的透明度
    }
}

6、屏幕震动

效果展示

屏幕震动

代码

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

public class Test06 : MonoBehaviour
{
    
    
    // Start is called before the first frame update
    void Start()
    {
    
    
        //transform.DOShakePosition(1);  //摄像机震动1秒

        transform.DOShakePosition(1, new Vector3(3, 3, 0));  //改变摄像机的震动幅度
    }
}

7、官方文档

http://dotween.demigiant.com/documentation.php

猜你喜欢

转载自blog.csdn.net/qq_44887198/article/details/128935573