Unity DoTween插件的参数介绍,方法、扩展方法的使用方式

DoTween的下载:DoTween官网 或者也可以在AssetStore下载。

 DOTween 常用方法的使用方式、参数、调用方法等详细说明

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using DG.Tweening.Core;
public class DoTweenTest : MonoBehaviour
{
    public Transform Cube;
    public Text textAni;
    float values = 0;
    public float myValue { get
        {
            Debug.Log("读取了myValue");
            return values;
        }
        set
        {
            Debug.Log("更新了myValue");
            values = value;
        }
    }
    public float a = 0;
    void Start()
    {
        #region DOTween 制作动画相关
        /*
         DOTween.To方法需要传入两个委托DOGetter,DOSetter,以及两个参数一共四个参数,参数都是泛型的
        参数一: DOGetter:官方解释  The action to perform with the tweened value. (要用调整后的值执行的操作。)
        参数二: DOSetter: 官方解释  The value to start from. 
        参数三:是我们的目标值
        参数四:我们达到目标值所需要的时间
        
        调用流程:首先DOTween通过参数一Func委托  获取我们要改变的值,参数一只调用一次
        然后每当值发生改变,通过参数二Action类型的委托回调方法,将改变后的值传回来,我们再进行处理
        还有 DOTween.ToAlpha、 DOTween.ToArray、DOTween.ToAxis等等,使用方法都大同小异
        */
        DOGetter<float> doGetter = new DOGetter<float>(() => myValue);
        DOSetter<float> dOSetter = new DOSetter<float>((x) => { Debug.Log("参数二执行"); myValue = x; });
        DOTween.To(doGetter, dOSetter, 10, 2);
        //我们一般直接使用   拉姆达表达式  进行书写,拉姆达表达式写法:

        //返回值是TweenerCore类型,由于TweenerCore继承自Tween,所以返回TweenerCore也可以
        TweenerCore<float, float, DG.Tweening.Plugins.Options.FloatOptions> tweenerCore = DOTween.To(() => myValue, rtValue => myValue = rtValue, 10, 2);
        Tween tween = DOTween.To(() => myValue, rtValue => myValue = rtValue, 10, 2);

        //在TweenerCore类型当中有很多扩展方法,我们可以在这里获得动画的生命周期,例如:
        tweenerCore.OnComplete(() => { Debug.Log("我已经执行完毕"); });//OnComplete方法,参数是Action类型的委托,在To方法执行完毕后调用
        tweenerCore.OnKill(() => { });//当动画结束或者被执行完毕之后回调
        tweenerCore.OnPlay(() => { });//当动画重新开始播放的时候回调
        tweenerCore.OnStart(() => { });//当动画第一次开始播放的时候回调(只调用一次)
        tweenerCore.OnPause(() => { });//当动画暂停的时候回调
        tweenerCore.OnRewind(() => { });//当动画被重置的时候回调
        tweenerCore.OnStepComplete(() => { });//当动画完成一个循环周期的时候调用,DOPlayBackwards执行完毕之后也会被调用

        //设置值变化的模式(曲线模式),该枚举中有很多变化方式,根据字面意思设置即可
        tweenerCore.SetEase(Ease.InBack);
        tweenerCore.Play();//开始执行
        tweenerCore.Pause();//暂停.    等其余的扩展方法都有详细的使用说明
        tweenerCore.SetAutoKill(false);//动画播放完毕后是否自动销毁
        /*
         * transform的扩展方法
         * tweenerCore1同样可以使用很多扩展方法。例如上边举过的例子OnComplete、SetEase、Play等
         */
        TweenerCore<Vector3, Vector3, DG.Tweening.Plugins.Options.VectorOptions> tweenerCore1 = transform.DOMove(new Vector3(1, 1, 1), 5.0f);           //世界坐标的移动
        Tween tween1 = transform.DOLocalMove(new Vector3(1, 1, 1), 5.0f);//局部坐标的移动
        transform.DOPause(); //暂停播放
        transform.DOPlayForward();   //向前播放
        transform.DOPlayBackwards();//倒着播放,我们的transform移动回原位置,倒播放必须将动画设置为不销毁tweenerCore1.SetAutoKill(false);
        transform.DOPlay();                //播放,只会播放一次
        transform.DOMove(new Vector3(1, 1, 1), 2).From();//from,从目标位置移动到当前位置
        transform.DOMove(new Vector3(1, 1, 1), 2).From(true);//参数  默认为false,true表示相对坐标,是从目标位置加当前位置移动到当前位置
        transform.DOShakePosition(5);//震动物体
        #endregion

        #region DOTween Text文字效果
        string value = "告别码农,从我做起。我们来测试一下DoText各种参数有什么效果。";
        //参数一:我们要显示的文本
        //参数二:显示文本所需要的时间
        //参数三:(机翻,我也不清楚有啥毛用):如果为真(默认),富文本将在动画时被正确解释,否则,所有标记将被视为正常文本)
        //参数四:文本显示的方式
        //参数五:当参数四枚举为ScrambleMode.Custom的时候,文字的显示方式将以参数五的方式显示
        textAni.DOText(value, 5,false,ScrambleMode.Custom,"......");
        textAni.DOColor(Color.black, 5); //颜色渐变
        textAni.DOColor(Color.white, 5);//多个DOColor如果渐变的一个Color属性,就会冲突并且只执行第一个执行的DoColor

        textAni.DOBlendableColor(Color.green, 5);//多个DOBlendableColor同时渐变一个color属性,不会冲突,会将所用执行的结果混合
        textAni.DOBlendableColor(Color.white, 5);//比如一个变白一个变黑,如果时间都相同,最终就会编程灰色
        textAni.DOFade(1, 2);                                //修改Color中的alpha 透明通道的数值,控制渐隐渐显
        #endregion

        #region DOTween 场景震动效果
        Camera.main.transform.DOShakePosition(0.5f,new Vector3(0.5f,0.5f,0.5f));//用该方法震动相机就会造成场景震动的效果
        #endregion
    }
}

官方文档有更详细的说明。

官方文档地址:官方文档

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值