DoTween使用总结

  1. 查看曲线效果网站
    曲线展示网站
  2. 曲线纵表示距离的倍数,横轴是时间比例,曲线设置key点击free,可以单独分出来
  3. 部分源码注释
public class DoTweenTest : MonoBehaviour
{
    public Gradient _gradient;
    public AnimationCurve animationCurve;
    Tweener _tweener;

    //async void Start()
    void Start()
    {
        //弹球效果(1.方向力的大小 2.持续时间 3.频率 4.0~1的值 如果为0 位置不低于0 越大向下幅度越大)
        //transform.DOPunchPosition(new Vector3(0, 1, 0), 2, 10, 0.5f);
        //乱震动效果(1.持续时间 2.方向力的大小 3.频率 4.角度)
        //transform.DOShakePosition(2, Vector3.one, 10, 90);
        //blend混合
        //transform.DOBlendableMoveBy(Vector3.one, 2f);
        //_Color不是这个就是_TintC0olor
        // material.DoFade(0,"_TintColor",2f);
        //自定义渐变
        //material.DOGradientColor(_gradient,"_TintColor",2f);
        //material其他
        //material.DoVector(),material.DoOffset();material.DoBlendableColor();

        //(1.宽高比改变)
        //Camera camera = Camera.main;
        //camera.DOAspect(0.5f, 2f);
        //camera.DOColor(Color.red, 2f);
        //camera.DONearClipPlane(1f,1f);
        //camera.DOFieldOfView(1, 5f);
        //camera.DOOrthoSize();
        //分屏效果
        //camera.DOPixelRect(new Rect(360, 540, 360, 540), 2f);
        //参数百分比呢
        //camera.DORect()
        //相机幌动
        //camera.DOShakePosition(2, 10, 10);

        //均速打字机效果
        //Text text = GetComponent<Text>();
        //text.DOText("sssskkkkkk", 5).SetEase(Ease.Linear);

        //Sequence quence = DOTween.Sequence();
        //quence.Append(transform.DOMove(Vector3.one, 2f));
        ////和插入差不多
        //quence.Join(t);
        ////和插入差不多
        //quence.AppendCallback();

        ////暂停一秒很关键啊
        //quence.AppendInterval(1f);
        //quence.Append(transform.DOMove(new Vector3(1, 0, 0), 2));
        //quence.Insert(0, transform.DOMove(-Vector3.one, 2f));

        ////停一秒
        //quence.PrependInterval(1f);
        ////预添加方法多用法,说白了和队列相反,后添加先执行
        //quence.Prepend();
        //quence.PrependCallback();
        //quence.InsertCallback(3f, () => { });

        //LoopType.Incremental 增量一直跑
        //LoopType.Restart 重新开始
        //杀死它,让它停下,如果为true
        //transform.DOMove(Vector3.one, 2f).SetLoops(-1, LoopType.Yoyo).SetAutoKill(true);
        //transform.DOKill();
        //form方法,从目标点回起始点,ture是相对的,vector3.one那么就是力,而不是位置了
        //transform.DOMove(Vector3.one, 2f).SetLoops(1, LoopType.Yoyo).From(true);
        //TweenParams para = new TweenParams();
        //transform.DOMove(Vector3.one, 2).SetAs(para);

        //延时
        //transform.DOMove(Vector3.one, 2).SetDelay(3f);
        //以速度为基准的运动,(2.表示的每秒0.1米)
        //transform.DOMove(Vector3.one, 0.1f).SetSpeedBased();

        //设置ID,减少性能
        //transform.DOMove(Vector3.one, 10).SetId("ID");
        //DOTween.Play("ID");
        //transform.DOMove(Vector3.one, 10).SetRecyclable(true);

        //设置相对,表示增量运动
        //transform.DOMove(Vector3.one, 2).SetRelative(true);

        //设置真函数,true是否忽略时间缩放
        //transform.DOMove(Vector3.one, 2).SetUpdate(UpdateType.Normal, true);

        //设置动画曲线(2. 多少次 3.-1和1之间 >0活动范围变小 =0不会衰竭 <0活动范围逐渐大,设置受伤颜色可行吗
        //transform.DOMove(Vector3.one, 2).SetEase(Ease.Flash,8,-1);

        //设置自定义曲线呢
        //transform.DOMove(Vector3.one, 2).SetEase(animationCurve);
        //transform.DOMove(Vector3.one, 2).SetEase(EaseFun);

        //回调函数 OnPlay OnKill OnStart OnStepComplete循环一次的时候 OnUpdate OnRewind(restart rewomd dpflip dpbackwards)

        //倒播放
        //transform.DOMove(Vector3.one * 2, 2f);
        ////await Task.Delay(TimeSpan.FromSeconds(1));
        ////一瞬间回去
        //transform.DORewind();
        ////平滑倒倒退
        //transform.DOSmoothRewind();
        ////杀死
        //transform.DOKill();
        ////反转补间动画,反转起始和目标点
        //transform.DOFlip();
        ////跳到动画1秒后还播放吗
        //transform.DOGoto(1, true);
        ////反向播放动画
        //transform.DOPlayBackwards();
        //transform.DOPlayForward();
        ////暂停或者播放?根据情况来
        //transform.DOTogglePause();

        //获取数据
        //var list = DOTween.PlayingTweens();
        //2.true,收集当前播放的动画
        //var list = DOTween.TweensById("ID", true);
        //var list = DOTween.TweensByTarget(transform, true);
        // 2 true在播放状态 
        //var list = DOTween.IsTweening("id",true);
        //var list = DOTween.TotalPlayingTweens();

        //当前的执行时间
        //var tweener = transform.DOMove(Vector3.one * 2, 2);
        //tweener.fullPosition = 0f;
        //print(tweener.fullPosition);
        //动画循环的次数
        //tweener.CompletedLoops();
        //获取延迟时间?
        //tweener.Delay();
        //持续时间,false不包含循环
        //tweener.Duration();
        //当前已经播放的时间
        //tweener.Elapsed();
        //距离进度的百分比
        //tweener.ElapsedDirectionalPercentage();
        //false不包含循环,true返回的总里程的百分
        //tweener.ElapsedPercentage();
        //tweener其他etc
        //tweener.IsBackwards

        //和携程使用
    }

    private IEnumerator Wait()
    {
        //yield return _tweener.WaitforCompletion();
        //执行玩2次之后
        //yield return _tweener.WaitForElapsedLoops(2);
        //等等动画执行几秒后执行
        //yield return _tweener.WaitForPosition();
        //yield return _tweener.WaitForRewind();
        //yield return _tweener.WaitForStart();
        return null;
    }

    //自定义函数曲线呢
    private float EaseFun(float time, float duration, float overshootOrAmplitude, float period)
    {
        return 0.3f;
    }
}
  1. 路径动画相关源码(待补充)

猜你喜欢

转载自blog.csdn.net/qq_37811712/article/details/85548748
今日推荐