2D开发工具包揭秘:DOTween Pro入门教程-阿里云开发者社区

开发者社区> 银狐游戏开发> 正文

2D开发工具包揭秘:DOTween Pro入门教程

简介: 今天为大家介绍2D开发工具包中的DOTween Pro插件。DOTween是一款针对Unity的快速高效、类型安全的面向对象的补间动画引擎,并且对于C#用户做出了很多的优化。 DOTween 有哪些优秀的特性?兼顾速度与效率:DOTween不仅非常快,而且非常高效。
+关注继续查看

  今天为大家介绍2D开发工具包中的DOTween Pro插件。DOTween是一款针对Unity的快速高效、类型安全的面向对象的补间动画引擎,并且对于C#用户做出了很多的优化。
38bc5288_ae56_43cc_b27c_5c3fedeeb6d9_11_png_1600x0x1

DOTween 有哪些优秀的特性?
兼顾速度与效率:DOTween不仅非常快,而且非常高效。因为一切都被缓存并重用,以避免无用的GC分配。

智能感知和类型安全
所有代码都是完整的XML注释,并组织起来,以充分利用智能感知。此外,一切都是类型安全的,因为没有使用字符串。

快捷使用
DOTween的调用简洁直观,如下所示:
[C#]
//在1秒内将transform移动到位置(1,2,3)
transform.DOMove(new Vector3(1,2,3),1);

//将transform的Y缩放值在1秒内变为3
transform.DOScaleY(3,1);

//暂停transform的补间
transform.DOPause();

非常准确:时间以非常精确的方式计算。这意味着每1000秒的1000次循环,每1000秒的循环播放完全一样长。
逻辑易用的API:API旨在提高效率,直观性和易用性。
一切皆可动画化:DOTween可以为每个数值和一些非数字值生成动画。甚至可以为字符串设置动画,并支持富文本。
捕捉,轴约束等选项:选择关于如何补偿值的其他选项,如捕捉(捕捉值到整数)或轴约束。
完全控制:播放,暂停,倒带,重新启动,完成,转到和其他有用的方法来控制你的补间。
分组:将补间合并到序列中以创建复杂的动画。
可混合的补间:由于功能强大的Doblendable快捷键,有些补间可以实时相互融合。
路径:沿着线性和弯曲的路径动画材料,还可以为您的旅行社定位更多的选择。
在播放时更改值和持续时间:即使在播放时,也可以随时更改补间的开始/结束值或持续时间。
安全模式:激活可选的安全模式,让DOTween照顾意外的事件,比如补间目标在玩耍时被销毁。
协程:使用各种“WaitFor ...”方法在协同程序中使用,允许您等待补间完成,杀死,启动或使其达到给定的位置或循环。
多种旋转模式:旋转补片可以采用最短的路线,完整的路线,或使用本地或世界的轴。
共享方法:这是一个Tweener还是一个序列?谁在乎?他们都从Tween继承,因此您可以以相同的方式存储和控制它们。
插件:DOTween是建立在可扩展架构之上的,它允许您创建自己的补间插件作为单独的文件。
附加功能:额外的虚拟方法来做一些事情,比如在给定的延迟之后调用一个函数。
所有的基础:回调,循环,减速(包括AnimationCurves和定制减速功能),SpeedBased和许多其他补间选项。此外,更新类型的选择:regular,fixed,late,加上选项使其与时间无关。

DOTween工具面板
52d4567b_1a25_42e6_b3f9_f30cf5b51e0e_11_jpg_1600x0x1

DOTween的工具面板,可让您设置默认DOTween设置,选项,检查更新等。
如果您在运行时选中了DOTween GameObject,则相应的检视窗口将显示常用的信息,以及直接打开在线文档的按钮,并检查是否具有最新版本。

DOTween的性能优势(与其他补间动画引擎比较)
在一个循环中处理64000个通用浮点数:
423bf9b0_3582_46e6_8fb6_2e1899e35b33_11_jpg_1600x0x1
在循环中处理4000个transform
aa6e598c_7c67_495a_b247_0206a49ff4cd_11_jpg_1600x0x1

DOTween Pro
DOTween Pro脱胎于DOTween的免费版本,并以其为基础扩展出了新的脚本快捷使用方式。它还包括可视化动画编辑器,可视化路径编辑器。而且Pro版本能无缝扩展2D Toolkit和TextMesh Pro的功能。
08d00799_dc8b_4733_8326_fcb7eaf14199_11_jpg_1600x0x1
安装步骤

第一步:导入DOTween插件
导入新的DOTween更新后,您必须设置DOTween才能根据您的Unity版本导入/重新导入其他库。
要设置DOTween,请从“Tools / Demigiant”菜单中打开DOTween 工具面板,然后从出现的面板中选择“Setup DOTween ...”。

第二步:引入DOTween命名空间
请在您要使用DOTween的类/脚本中加入如下引用:
[C#] 纯文本查看 复制代码
using DG.Tweening;

第三步:初始化(可选)

[C#]
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将使用默认设置自动初始化,但是您仍然可以随时更改它们。

使用简介
写法结构1:通用格式
46d05f05_8afc_4465_99a9_e559ce1a4e08_11_jpg_1600x0x1

例子:
[C#] 纯文本查看 复制代码
//将myVector的值在1秒内,补间转换到(3,4,8)
DOTween.To(()=> myVector, x=> myVector = x, new Vector3(3,4,8), 1);
//将myFloat的值在1秒内,补间转换到52
DOTween.To(()=> myFloat, x=> myFloat = x, 52, 1);

写法结构2:快捷格式
DOTween包括一些已知的Unity对象的快捷方式,如Transform,Rigidbody和Material。 您可以从对这些对象的引用直接启动补间(这也将自动将对象本身设置为补间目标)
例子:
[C#] 纯文本查看 复制代码
//将transform在1秒内移动到(2,3,4)的空间位置
transform.DOMove(new Vector3(2,3,4), 1);
//将rigidbody在1秒内移动到(2,3,4)的空间位置
rigidbody.DOMove(new Vector3(2,3,4), 1);
//将material的Color(颜色值)在1秒内渐变到绿色
material.DOColor(Color.green, 1);
无论您选择哪种方式,当创建一个补间时,都会返回一个Tweener或一个Sequence,可以根据实际需要保持这个引用,供之后使用。

控制方式
因为DOTween有多种写法和引用,所以控制DOTween的方式也有不少选择。
以Rewind(回放)功能为例:
1、静态调用:
[C#] 纯文本查看 复制代码
//回放所有补间
DOTween.RewindAll();
//根据ID回放相关补间
DOTween.Rewind(myId);

2、通过引用
[C#] 纯文本查看 复制代码
//通过myTween引用来回放
myTween.Rewind();

3、快捷调用
[C#] 纯文本查看 复制代码
//回放transform上所有的补间动画
transform.DORewind();

FORM补间
顾名思义,FORM就是“从……来”的意思,即对应的最终值的部分就是变成了“初始值”。
例如:
[C#] 纯文本查看 复制代码
//常规补间To:将transform在1秒内,横向移动到2的位置
transform.DOMoveX(2, 1);
//FROM模式:将transform在1秒内,从2的位置移动到现在的位置
transform.DOMoveX(2, 1).From();
//FROM相对值模式:将transform在1秒内,从现在横向+2的位置,移动到现在的位置
transform.DOMoveX(2, 1).From(true);

链式设置
DOTween可以通过Set方法进行一系列的补间动画实现,通过On来进行回调。
例子:
[C#] 纯文本查看 复制代码
//将transform在2秒内,移动到(2,2,2)位置,使用OutQuint的减速动画形式重复4次,动画结束后调用myFunction方法
transform.DOMove(new Vector3(2,2,2), 2)
.SetEase(Ease.OutQuint)
.SetLoops(4)
.OnComplete(myFunction);

//相同作用的另外一种写法
Tween myTween = transform.DOMove(new Vector3(2,2,2), 2);
myTween.SetEase(Ease.OutQuint);
myTween.SetLoops(4);
myTween.OnComplete(myFunction);

补间的生命周期
当您创建补间动画的时候,它通常是自动播放的,直到完成其所有循环内容后才会结束。但是,您可以更改全局属性defaultAutoPlay来控制。
当补间动画播放结束之后,通常是自动销毁的。但是,您可以更改全局属性defaultAutoKill来控制。
如需要重复使用相同的补间动画,只要将autoKill设置为False便可,或者可以在设置补间动画的时候SetAutoKill(false)。
如果您没用使用安全模式,当补间动画实施的目标为空(null)时,可能会发生错误。

缓存和最大补间数量
如果您可以激活循环重用DOTween缓存,那么您就不必再额外创建新的对象了。
一般建议设置最大Tweener数量为200,最大Sequence数量为50。如果您需要更多功能,DOTween会自动增加两个的数量。但是,您可以直接设置,如下所示:
[C#] 纯文本查看 复制代码
// 设置最大 Tweener数量为 3000 ,最大Sequence数量为 200
DOTween.SetTweensCapacity(3000, 200);
当要重置DOTween的缓存时,只需要调用DOTween.Clear()就可以了。

常用API
请访问文档地址:http://dotween.demigiant.com/documentation.php

最新版本
请访问网盘地址:https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111debRlchEB&ft=t&id=576046628042

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
x3d
[译]Godot系列教程六 - 简单的二维游戏
Pong Godot自带的Demo中有大量更复杂的示例,但这款叫“Pong”的游戏可以对2D游戏的基本特性做一个介绍。 静态资源 本文所用到的一些资源文件:http://files.cnblogs.com/files/x3d/pong_assets.zip 场景设置 考虑到兼容旧设备,该游戏的分辨率设置为 640x400像素,相关操作在项目设置中进行。
919 0
C#对接----韵达开发平台--取电子面单
引子 最近根据业务的一些需求,所以放弃从快递鸟对接去电子面单,转而直接对接韵达开发平台:http://open.yundasys.com/ ,中间踩了一些坑,借此做了一个小案例给大伙,瞅瞅,若有需改进之处,还请指出!!! 废话不多数:首先咱先对韵达的一些接口参数了解清楚: 当然附上地址:http://open.
2597 0
SNMP从入门到开发:进阶篇
管理信息库:MIB 我们要扩展mib首先必须清楚mib是如何定义的,用的什么语言,有哪些约定,遵循哪些规则等等。这些基本东西掌握过后,我们就可以很轻松的来写自己的mib文件了。 所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的MIB库。
947 0
敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键
Agile Model Driven Development (AMDD): The Key to Scaling Agile Software Development 敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键   Table ...
1233 0
SNMP从入门到开发:基础篇
SNMP协议入门 1、引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base)。
934 0
x3d
[译]Godot系列教程五 - 制作Godot编辑器插件
制作插件 下文仅针对2.1版本。 关于插件 插件是为编辑器扩展出更多有用工具的重要方式。它可以完全用GDScript和标准场景开发,甚至都不需重新加载编辑器就可生效。不像模块,你无需创建C++代码、也无需重新编译整个引擎。
1129 0
TensorFlow新功能:TensorFlow Probability概率编程工具箱介绍
2018年,tensorflow开发者峰会上,tensorflow管理人员发布了:TensorFlow Probability——一种概率编程工具箱,用于机器学习研究人员和从业人员快速可靠地构建利用最先进硬件的复杂模型。快来学习一下吧~
3346 0
x3d
[译]Godot系列教程四 - 编写脚本
编写脚本(Scripting) 简介 关于无需编程即可创建视频游戏的那些工具的谈论有很多。不用学习编程知识对很多独立开发者来说就是一个梦想。这种需求 - 游戏开发者、甚至在很多公司内部,希望对游戏流程拥有更多控制权,已经有很长一段时间了。
1047 0
Progress进度查看器是一个可以显示Linux命令的工具
Progress进度查看器是一个可以显示Linux命令的工具
388 0
+关注
银狐游戏开发
shop135452397.taobao.com
861
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载