dotween.png

补间动画:又叫做中间帧动画,渐变动画,只要建立起始和结束的画面,中间部分由软件自动生成,省去了中间动画制作的复杂过程,这正是Flash的迷人之处,补间动画是Flash中最常用的动画效果。

参考链接

http://www.robertpenner.com/easing/easing_demo.html

Tween插件比较

TIM截图20180518223915.png

Dotween是众多Unity补间动画插件中效率最高,使用最方便,使用人数最多的一个。

Dotween方法前缀

DO前缀:适用于所有补间快捷方式(可以直接从已知对象开始的操作,如变换或材质)。 也是主DOTween类的前缀。

transform.DOMoveX(100, 1);

transform.DORestart();

transform.DoScale();

Set前缀:适用于所有可链接到补间的设置(除From之外,因为它作为设置应用,但不是真正的设置)。

myTween.SetLoops(4, LoopType.Yoyo);

myTween.SetSpeedBased();

On前缀:对于可以链接到补间的所有回调。

myTween.OnStart(myStartFunction).

myTween.OnComplete(myCompleteFunction);

创建一个Tweener

1.通用方式

2.快捷方式

3.其他方式

1.通用。最灵活的,可以补间任何值(快捷世界上在后台使用通用方式)

static DOTween.To(getter, setter, to, float duration)

getter:lambda表达式 ()=> myValue

setter:lambda表达式 (x)=> myValue = x

to:最终值

duration:补间时长

例如:

DOTween.To(()=> myVector, x=> myVector = x, new Vector3(3,4,8), 1);

DOTween.To(()=> myFloat, x=> myFloat = x, 52, 1);

2.快捷方式:dotween扩展了unity的对象,像transform,rigidbody,material,可以直接使用

例如:

transform.DOMove(new Vector3(2,3,4), 1);

rigidbody.DOMove(new Vector3(2,3,4), 1);

material.DOColor(Color.green, 1);

或者[反向播放.From()]

transform.DOMove(new Vector3(2,3,4), 1).From();

rigidbody.DOMove(new Vector3(2,3,4), 1).From();

material.DOColor(Color.green, 1).From();

其他已实现扩展方法的类:

Unity5:

AudioSource、Camera、Light、LineRenderer、Material、Rigidbody、Rigidbody2D、SpriteRenderer、TrailRenderer、Transform

Unity UI 4.6:

CanvasGroup、Image、LayoutElement 、Outline、RectTransform、ScrollRect、Slider 、Text

Pro版本:

doPath,tk2dBaseSprite、tk2dSlicedSprite、tk2dTextMesh、TextMeshPro 、TextMeshProUGUI、Spiral

3.其他方式:通用方式的其他特殊形式(不用掌握)

例如:

DOTween.Shake(()=> myVector, x=> myVector = x, 1, 5, 10, 45, false);

使用方法API

Tweener paneltweener = panelTranform.DOScale (new Vector3(2,2,1),1f);

//多次调用DOTween动画会影响性能

//DOTween默认动画播放完毕时会自动销毁动画

//Tweener对象保存这个动画

paneltweener.SetAutoKill(false); //禁止销毁动画

paneltweener.Pause(); //停止播放动画

//paneltweener.SetDelay(0.5f); //设置动画延迟播放

//paneltweener.SetEase(Ease.INTERNAL_Zero); //设置动画运动的模式

//paneltweener.SetLoops(-1); //设置循环播放 (-1为循环播放;>0的时候则表示循环的次数)

paneltweener.SetLoops(-1,loopType); //设置循环播放并且设置动画循环的模式

//paneltweener.PlayForward(); //播放

//paneltweener.PlayBackwards(); //倒放

paneltweener.OnComplete(OnComplete); //动画播放完毕后执行,动画倒放时候不执行

paneltweener.OnStart(OnStart); //动画第一次播放时执行

paneltweener.OnUpdate(OnUpdate); //动画播放时不断执行

paneltweener.OnPlay(OnPlay); //动画开始播放时执行

//paneltweener.OnStepComplete(OnStepComplete);//动画播放且倒放都会执行一次,且执行顺序先于OnComplete

//paneltweener.OnKill(OnKill); //动画删除的时候执行事件

//paneltweener.Kill(true); //删除动画且组件会直接到达指定位置

补间动画序列Sequence

1.从Sequence末尾追加

mySequence.Append(transform.DOMoveX(45, 1));

mySequence.AppendCallback(MyCallback);

mySequence.AppendInterval(interval);

2.在Sequence中间插入

mySequence.Insert(1, transform.DOMoveX(45, 1));

mySequence.InsertCallback(1, MyCallback);

3.在Sequence最后一个开始时间插入

mySequence.Append(transform.DOMoveX(45, 1));

mySequence.Join(transform.DORotate(new Vector3(0,180,0), 1));

4.从Sequence的开头追加

mySequence.Prepend(transform.DOMoveX(45, 1));

mySequence.PrependCallback(MyCallback);

mySequence.PrependInterval(interval);

例如:

Sequence mySequence = DOTween.Sequence();

mySequence.Append(transform.DOMoveX(45, 1));

mySequence.Append(transform.DORotate(new Vector3(0,180,0), 1));

mySequence.PrependInterval(1);

mySequence.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

简洁形式

Sequence mySequence = DOTween.Sequence();

mySequence.Append(transform.DOMoveX(45, 1))

.Append(transform.DORotate(new Vector3(0,180,0), 1))

.PrependInterval(1)

.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

dotween的数值变化_Unity-Dotween相关推荐

  1. DOTween的使用(一) DOTween实现代码延时执行 + DOTween.Sequence的(队列)的简单介绍

    实现代码的延时执行,可以用Invoke.Coroutine实现,还可以借助DOTween这款插件实现延时执行. 一:用DOTween.To实现延时: /// <summary>/// DO ...

  2. 倍福:TwincAT配置汇川EtherCAT伺服,NC有数值变化,但电机不转,NC报错17744

    汇川伺服配置之后,编码器数值有变化,电机不转,报错17744 原因:在勾选的PDO参数中,存在力矩限制的值,如下所示 默认是没有做变量链接,因此限制的力矩是0,此时伺服点动因为不能大于力矩限制,因此伺 ...

  3. dotween unity 延时_unity延时功能的几种实现

    原文:https://www.cnblogs.com/xifarm/p/invoke.html 在Unity3D中,新建的脚本会默认继承MonoBehaviour,其中Update函数会被引擎自动调度 ...

  4. DoTween的使用与详解

    DOTween路径动画详解与使用 转载请注明出处 DOTween插件一般与UGUI结合使用 DoTween的运动方式 1.DOTween.To()方法 对变量做一个动画,通过插值的方式修改一个值的变化 ...

  5. DoTween全解析(入门篇)

    DoTween全解析(入门篇) 概述: DoTween,Itween,这些名字作为一个Unity开发人员听起来并不陌生,它们在动画方面表现出了令人折服的能力,今天我带着大家来一起认识一下这款插件. 首 ...

  6. UnityUI动态效果插件Dotween

    1.Dotween的功能 DoTween是unity的动画特效插件 它的核心在于实现了[数值的缓动] Dotween.To方法 是dotween实现数值缓动的基础方法,其他方法都是基于此方法的扩展 D ...

  7. u3d:强大的dotween。使用dotween处理延时问题,最最最最简单的办法

    dotween仅仅只有300kb左右,但是能实现很多功能简单但是处理起来麻烦的问题 第一:延时n秒执行一个事件 方法一:使用 Invoke("方法名",n秒): 这样写要定义方法, ...

  8. UGUI_使用DoTween

    因为NGUI中已经有UITween了,可是UGUI中是没有这样的Tween的.因为在做游戏暂停的时候通常会使用Time.Scale =0 , 可是暂停的时候UI如果需要继续有动画怎么办呢? 在DoTw ...

  9. Unity3D DoTween插件 的基本用法

    DoTween官网      网址:  http://dotween.demigiant.com/ DoTween的下载地址,文件特别小,几百K     网址:http://dotween.demig ...

  10. iTween和DOTween的选择

    转载请注明,原文地址:http://www.benmutou.com/archives/2410 文章来源:笨木头与游戏开发 在游戏开发里,补间动画是不可少的,像简单的向前移动.上下重复飘动.按照预设 ...

最新文章

  1. 【特征提取+分类模型】4种常见的NLP实践思路
  2. 部署WSUS2.0+SP1
  3. c++的引用是什么意思?怎么回事?
  4. 【Linux】一步一步学Linux——cut命令(44)
  5. 牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案
  6. Bootstrap3 栅格系统
  7. 《Reids 设计与实现》第二十章 监视器
  8. WCF 之 数据契约
  9. 反射与泛型 java_深入理解Java的反射和泛型
  10. Hibernate之集合映射
  11. word论文排版插件_Word自动排版软件
  12. 【微机原理与接口技术】学习笔记9 DMA控制器8237A
  13. 数据分析神经网络模型图,神经网络模型数据处理
  14. 使用XML作为数据库
  15. LeetCode刷题记 --- pta 7- 4
  16. 堆米微信H5页面怎么制作?易企秀微信H5页面制作,微信简历制作,
  17. 大数据工具之Trino
  18. 水安ABC考试多选练习题库
  19. Unity 3D学习笔记(5)物体的碰撞/触发检测
  20. 矩阵切换器有哪些控制方式,有什么好处

热门文章

  1. 【Java】Java文件读写
  2. 【算法导论】有向图的可达矩阵
  3. win10/win11掉驱动问题
  4. 使用google service定位服务
  5. 一份毕业指南给需要的人
  6. Java中的JUnit单元测试
  7. Firemonkey使用Android原生控件一些注意事项
  8. windows server 2000系统安装
  9. 无法远程桌面netmeeting
  10. 计算机修改了服务如何恢复,怎么修复MSDTC服务?