Unity 动画二:DOTween使用简介

一、前言

上一章对DOTween进行了简单的介绍,了解了其特性以及如何引入项目,下面,我们开始对他的使用,做一个简单介绍,让你对DOTween的用法有个初步的认识。

二、写法结构

1、通用格式

Unity 动画二:DOTween使用简介_第1张图片
image

例子:

//将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。 您可以从对这些对象的引用直接启动补间(这也将自动将对象本身设置为补间目标)

例子:

//将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、静态调用:
//回放所有补间

DOTween.RewindAll();

//根据ID回放相关补间

DOTween.Rewind(myId);
  • 2、通过引用
//通过myTween引用来回放

myTween.Rewind();
  • 3、快捷调用
//回放transform上所有的补间动画

transform.DORewind();

FORM补间

顾名思义,FORM就是“从……来”的意思,即对应的最终值的部分就是变成了“初始值”。

例如:

//常规补间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来进行回调。

例子:

//将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会自动增加两个的数量。但是,您可以直接设置,如下所示:

// 设置最大 Tweener数量为 3000 ,最大Sequence数量为 200

DOTween.SetTweensCapacity(3000, 200);

当要重置DOTween的缓存时,只需要调用DOTween.Clear()就可以了。

四、常用API

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

五、总结

这里介绍的仅仅是对DOTween最基础的用法,后面将结合项目实际情况给大家分享更多DOTween的实际开发案例教程,敬请期待。

你可能感兴趣的:(Unity 动画二:DOTween使用简介)