DOTween是最常用的动画插件之一,比使用Unity自带脚本写动画,方便很多。
导入和设置
DOTween在Unity的商城里,有免费版和收费版,一般使用免费版就足够了。收费版DOTween Pro看说明主要是多了一些辅助的编辑器。
DOTween商城地址:http://dotween.demigiant.com
DOTween首次使用需要设置,导入以后会弹出下面的窗口,点击按钮就好。
之后点击绿色的“Setup DOTween”按钮就能设置。下面的那个青色的按钮是生成一个ASMDEF文件,让写脚本的时候不必每次都去编码DOTween的内容,提高写完代码切换的速度。
这个窗口可以通过菜单Tools/Demigiant/DOTween Utility Panel再次打开,要访问官网查看文档通过这里都很方便。
点击了按钮就显示这个界面,默认全选就好,再选中Apply按钮就可以了。
使用说明
使用前需要添加引用
using DG.Tweening;
基本写法看上去是这样的:
DOTween.XX(各种参数).循环(参数).等待(参数).变化(参数).事件响应(响应函数)…;
unity属性.DO动作(各种参数).循环(参数).等待(参数).变化(参数).事件响应(响应函数)…;
通用方法
DOTween.开头的官方叫通用方法,其中最常用的就是DOTween.To(getter, setter, to, float duration)。绝大多数动画都可以用这个方法解决。前2个输入的是代理。无论是控制移动,旋转,颜色变化,文字变化都可以用这个方法。getter是初始值,setter是变化的值,to是目标,duration是变化时长。
DOTween.To(()=> myVector, x=> myVector = x, new Vector3(3,4,8), 1);
DOTween.To(()=> 0, x=> myFloat = x, 50, 5);
通用方法除了To,还有其他的,如下图。
便捷方法
便捷方法是 Unity的各种属性.DOXXX,简单说就是能少打几个字。例如让当前游戏对象移动到某个位置的DOMove。
transform.DOMove(Vector3.right * 3, 2);
不同属性后面可以DO出不同的动作,而且参数不同。一般常见的动画变化都有,推荐看一下官方文档有个大概印象,使用的时候,遇到对应属性的动画的时候,DO出来再靠代码提示来选择就好。
- transform.DOPath可以设置一个路径,让游戏对象在路径上移动。之前免费的路径编辑器没有了,可以用LineRenderer的编辑来代替。
- text.DOText可以让文本框里面的文字逐字显示,NPC对话内容常用到。但是,不支持Text Mesh Pro。所以推荐使用DOTween.To来代替。
- 便捷方式似乎在Mac电脑上有点小问题。
添加设置
主要的语句完了以后,可以通过点,点出更多的设置跟在后面,如常见的循环。
transform.DOMove(Vector3.right * 8, 2).SetLoops(3, LoopType.Yoyo);
事件响应
对于动画的事件响应也是点出来跟在后面的。
transform.DOMove(Vector3.right * 8, 2).OnComplete(OnEnd);
序列和参数
序列是让一系列的动画顺序执行,参数的话是可以把具体的设置,例如循环,等待,变化啥的变成一个统一的参数,在不同的动画中统一调用。
控制
DOTween也提供了多种方法控制动画的播放,暂停等。
协程和异步
视频说明
Unity动画插件DOTween的使用