一、DOTween简介
DOTween是一款针对Unity的快速高效、类型安全的面向对象的补间动画引擎,并且对于C#用户做出了很多的优化。
兼顾速度与效率:
DOTween不仅非常快,而且非常高效。因为一切都被缓存并重用,以避免无用的GC分配。
智能感知和类型安全
所有代码都是完整的XML注释,并组织起来,以充分利用智能感知。此外,一切都是类型安全的,因为没有使用字符串。
使用方便快捷
DOTween的调用简洁直观,如下所示:
//在1秒内将transform移动到位置(1,2,3)
transform.DOMove(new Vector3(1,2,3),1);
transform.DOLocalMove(new Vector3(1,2,3),1);
//将transform的Y缩放值在1秒内变为3
transform.DOScaleY(3,1);
//暂停transform的补间
transform.DOPause();
二、DOTween特性
非常准确
时间以非常精确的方式计算。这意味着每1000秒的1000次循环,每1000秒的循环播放完全一样长。
逻辑易用的API
API旨在提高效率,直观性和易用性。
一切皆可动画化
DOTween可以为每个数值和一些非数字值生成动画。甚至可以为字符串设置动画,并支持富文本。
捕捉,轴约束等选项
选择关于如何补偿值的其他选项,如捕捉(捕捉值到整数)或轴约束。
完全控制
播放,暂停,倒带,重新启动,完成,转到和其他有用的方法来控制你的补间。
分组
将补间合并到序列中以创建复杂的动画。
可混合的补间
由于功能强大的Doblendable快捷键,有些补间可以实时相互融合。
路径
沿着线性和弯曲的路径动画材料,还可以为您的旅行社定位更多的选择。
在播放时更改值和持续时间
即使在播放时,也可以随时更改补间的开始/结束值或持续时间。
安全模式
激活可选的安全模式,让DOTween照顾意外的事件,比如补间目标在玩耍时被销毁。
协程
使用各种“WaitFor ...”方法在协同程序中使用,允许您等待补间完成,杀死,启动或使其达到给定的位置或循环。
多种旋转模式
旋转补片可以采用最短的路线,完整的路线,或使用本地或世界的轴。
共享方法
这是一个Tweener还是一个序列?谁在乎?他们都从Tween继承,因此您可以以相同的方式存储和控制它们。
插件
DOTween是建立在可扩展架构之上的,它允许您创建自己的补间插件作为单独的文件。
附加功能
额外的虚拟方法来做一些事情,比如在给定的延迟之后调用一个函数。
所有的基础
回调,循环,减速(包括AnimationCurves和定制减速功能),SpeedBased和许多其他补间选项。此外,更新类型的选择:regular,fixed,late,加上选项使其与时间无关。
三、DOTween工具面板
DOTween的工具面板,可让您设置默认DOTween设置,选项,检查更新等。
DOTween检视窗口
如果您在运行时选中了DOTween GameObject,则相应的检视窗口将显示常用的信息,以及直接打开在线文档的按钮,并检查是否具有最新版本。
DOTween的性能优势(与其他补间动画引擎比较)
在一个循环中处理64000个通用浮点数:
在循环中处理4000个transform
DOTween Pro
DOTween Pro脱胎于DOTween的免费版本,并以其为基础扩展出了新的脚本快捷使用方式。它还包括可视化动画编辑器,可视化路径编辑器。而且Pro版本能无缝扩展2D Toolkit和TextMesh Pro的功能。
四、安装步骤
1、导入DOTween插件
导入新的DOTween更新后,您必须设置DOTween才能根据您的Unity版本导入/重新导入其他库。
要设置DOTween,请从“Tools / Demigiant”菜单中打开DOTween 工具面板,然后从出现的面板中选择“Setup DOTween ...”。
2、引入DOTween命名空间
请在您要使用DOTween的类/脚本中加入如下引用:
using DG.Tweening;
3、初始化(可选)
static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
//示例A:使用DOTween的工具面板中设置的首选项进行初始化
DOTween.Init();
//示例B:使用自定义设置进行初始化,并立即设置容量
DOTween.Init(true,true,LogBehaviour.Verbose).SetCapacity(200,10);
如果您不调用(或者在创建第一个补间)之后,DOTween将使用默认设置自动初始化,但是您仍然可以随时更改它们。
五、结语
通过对DOTween的简单了解,感觉这个库还是蛮强大的,基本上能满足各种动画的需求,性能也相当出色,最关键是它是对Unity原生API进行扩展,使用非常便捷。
接下来准备再通过一章简单介绍DOTween的用法,敬请期待。