Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:unity:动画插件dotween

动画插件 DoTween

安装

下载安装Zip包,解压到Assets的任意非特殊目录,Unity编译完成后打开DOTween Utility Panel初始化一下就可以在代码中使用了,面板的路径是:“Tools/Demigiant”

结构

DoTween的介绍图就描述的很清楚了

  1. DoTween.To()创建的是Tweener,用于动态地控制一个(或一组)值
  2. DOTween.Sequence()创建的是Tweener,Sequence是Tween的序列
  3. Sequence和Tweener都是继承自Tween
  4. 使用AppendJoin将Tween添加到Sequence中
  5. Append把Tween放到队列尾
  6. Join使新Tween和最后一个Tween一起执行
  7. Tween作为基本单位进行Play/Complate等操作

各个类之间的继承关系:

使用

最基础的函数,提供getter和setter函数,可以基于此拓展功能:

// 加上命名空间
using DG.Tweening;
 
var T = transform.DOShakePosition(1.0f, 10).SetDelay(0.2f).SetLoops(5).SetEase(Ease.Flash).OnComplete(() =>
{
 
});
 
T = transform.DOShakeRotation(1.0f, 90).SetLoops(5).OnPause(() =>
{
 
});
 
T.Pause();
 
transform.DOScale(2.0f, 1.0f).SetLoops(3).OnPlay(() =>
{
 
});

生命周期管理

  1. 需要进行一次全局Init,如果没有手动执行的话,这个Init也会自动执行
  2. 创建的Tween默认也都是Auto Kill
  3. 没有特殊需求的话,生命周期不用特殊处理

在EditMode中预览

思路1:模拟DoTween行为

在EditMode中预览DoTween并不方便,因为除了顺序播放之外,可能还需要提供Pause、Rewind甚至Seek的功能。所以,只要没有用到DoTween特别黑盒的参数(不好模拟出来的),就可以使用别的工具在EditMode模拟DoTween的行为,并不复杂

我写过的例子:https://github.com/GZhonghui/UiAnimation

思路2:使用DoTween的API

使用DoTween提供的接口在EditMode进行预览

主要需要使用到的是:DOTweenEditorPreview.PrepareTweenForPreview(namespace DG.DOTweenEditor)

参考代码:https://github.com/GZhonghui/UnityTools/blob/master/DtAnimation/Editor/DtAnimationEditor.cs

/var/www/DokuWikiStick/dokuwiki/data/pages/软件/unity/动画插件dotween.txt · Last modified: 2023/04/27 07:04 by zh