Dotween插件

一、移动、旋转、缩放

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //transform.DOMove(Vector3.one, 2f);//移动(世界坐标)
        //transform.DOLocalMove(Vector3.one, 2f);//移动(局部坐标)
        //transform.DOLocalMoveX(1f, 2f);//沿着X轴移动(局部坐标)

        //transform.DORotate(new Vector3(45, 45, 45), 2);//旋转(世界坐标)
        //transform.DOLocalRotate(new Vector3(45, 45, 45), 2);//旋转(局部坐标)
        //transform.DORotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2);//四元数旋转
        //transform.DOLookAt(Vector3.one, 2f);//Z轴正方向朝向(看向)

        transform.DOScale(Vector3.one * 2, 2f);//缩放
    }
}

二、Punch函数

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //参数1:punch代表力的方向和大小
        //参数2:duration 代表持续时间
        //参数3:震动次数(频率)
        //参数4:取值范围:0-1
        //transform.DOPunchPosition(new Vector3(0, 2, 0), 3, 10, 0.1f);
        //transform.DOPunchRotation(new Vector3(0, 60, 0), 3, 10, 0.1f);
        transform.DOPunchScale(new Vector3(1, 1, 1), 3, 10, 0.1f);
    }
}

三、Shake震动函数

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //参数1:持续时间
        //参数2:力的方向和大小(范围)
        //参数3:频率
        //参数4:随机数
        //参数5:淡入淡出
        transform.DOShakePosition(10, Vector3.one, 10, 90, true);
    }
}

四、Blend混合函数

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //Blend 动画混合
        transform.DOBlendableMoveBy(Vector3.one, 2);
        transform.DOBlendableMoveBy(-2 * Vector3.one, 2);
    }
}

五、材质

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    public Gradient gradient;//渐变色

    void Start()
    {
        Material mat = GetComponent().material;

        //mat.SetColor("_Color", Color.red);
        //mat.DOColor(Color.red, "_Color", 2f);//注意:_Color不唯一,需根据Shader中颜色变量名来输入。

        //mat.DOColor(Color.clear, "_Color", 2f);
        //mat.DOFade(0, "_Color", 2f);//透明度

        //mat.DOGradientColor(gradient, "_Color", 2f);//渐变

        //mat.DOOffset

        //mat.DOVector(Color.clear, "_Color", 2f);

        //颜色混合
        mat.DOBlendableColor(Color.red, 2f);
        mat.DOBlendableColor(Color.green, 2f);
    }
}

六、Text

using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Text txt;

    void Start()
    {
        //txt.DOColor(Color.red, 2f);//颜色
        //txt.DOFade(0f, 2f);//透明度
        //txt.DOBlendableColor //颜色混合

        //txt.DOText("莫道桑榆晚,为霞尚满天",3f);//打字机
        txt.DOText("莫道桑榆晚,为霞尚满天",3f).SetEase(Ease.Linear);//匀速打字效果
    }
}

七、队列

using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //按照动画播放顺序,依次添加动画
        Sequence quenece = DOTween.Sequence();
        quenece.Append(transform.DOMove(Vector3.one, 2f));//第一次执行的动画
        quenece.AppendInterval(1f);//间隔1秒
        quenece.Append(transform.DORotate(new Vector3(90, 0, 0), 2));//第二次执行的动画
    }
}
using UnityEngine;
using DG.Tweening;

public class Test : MonoBehaviour
{
    void Start()
    {
        //按照动画播放顺序,依次添加动画
        Sequence quenece = DOTween.Sequence();
        quenece.Append(transform.DOMove(Vector3.one, 2f));//前2秒的动画
        quenece.Join(transform.DOScale(2 * Vector3.one, 2f));//同时播放的前2秒动画
        quenece.AppendCallback(AppendCallBack);//添加Append回调
        quenece.AppendInterval(1f);//间隔1秒(第3秒)
        quenece.Append(transform.DORotate(new Vector3(90, 0, 0), 2));//第4秒往后播的2秒动画
        quenece.Join(transform.DOScale(Vector3.one, 2f));//同时播放的后2秒动画

        //quenece.Insert(0,transform.DOMove(-Vector3.one, 2f));//从第0秒开始插入一条2秒的动画
        //quenece.Insert(100, transform.DOScale(Vector3.one, 2f));//动画也可以向后插

        quenece.PrependInterval(1);//预间隔1秒
        quenece.Prepend(transform.DOMove(-Vector3.one * 2, 2f));//预添加(放到动画最开头)
        quenece.PrependCallback(PrependCallBack);//添加Prepend回调

        //回调
        quenece.InsertCallback(5, InsertCallBack);

    }

    private void InsertCallBack()
    {
        Debug.Log("Insert回调");
    }

    private void AppendCallBack()
    {
        Debug.Log("Append回调");
    }

    private void PrependCallBack()
    {
        Debug.Log("Prepend回调");
    }
}

八、设置参数

你可能感兴趣的:(unity)