DOTween插件学习笔记

术语

Tweener 控制值并对值进行动画

Sequence 特殊的Tweener控制其他的Tweens,并将它们作为一个组进行动画。

Tween 既表示一个Tweener,也表示一个Sequence。

Nested Tween 包含在Sequence中的嵌套tween

准备工作

"Tools/Demigiant" menu打开Dotween Utility Panel,点击Setup DoTween

在你想要使用DoTween代码的脚本中引入命名空间

using DG.Tweening;

默认的运动方式

主要表现是开始执行时,快速,在后期会逐步减速。该算法在执行时间长度比较短时看着比较合理舒适,但是如果出现类似距离较长,时间也相对较长时,就容易发现在后期有点很不好接受的缓慢移动。此时就需要考虑更改运动方式。

transform.DOMoveX(4, 1).SetEase(Ease.InOutQuint);
transform.DOMoveX(4, 1).SetEase(myAnimationCurve);
transform.DOMoveX(4, 1).SetEase(MyEaseFunction);

1、实现简单移动

transform.DOMove(new Vector3(2,3,4), 1);

调用后1秒移动到点(2,3,4),函数返回一个tweener

tweener可以通过一些带set前缀的方法进行设置

myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();

通过带on前缀的方法绑定回调函数

myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

如果回调函数要带参数可以使用lambda表达式

transform.DOMoveX(4, 1).OnComplete(()=>MyCallback(someParam, someOtherParam));

2、实现整体缩放的同时进行1秒后移动之后再旋转

Sequence mySequence = DOTween.Sequence();

返回可用的序列

mySequence.Append(transform.DOMoveX(45, 1));
mySequence.Append(transform.DORotate(new Vector3(0,180,0), 1));

使用Append将指定的Tweener加入到Sequence的结尾

mySequence.PrependInterval(1);

PrependInterval将一段时间加入到Sequence的开头

而使用Prepend可以将Tweener加入到Sequence的开头,

mySequence.Prepend(transform.DOMoveX(45, 1));
mySequence.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

使用Insert可以重叠Tweener

以上代码也可写成

Sequence mySequence = DOTween.Sequence();
mySequence.Append(transform.DOMoveX(45, 1))
	  .Append(transform.DORotate(new Vector3(0,180,0), 1))
	  .PrependInterval(1)
	  .Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

DOTWEEN :: An error inside a tween callback was silently taken care of > The object of type 

这个错误是以警告的方式提示你的,想要定位错误的地点可以在DoTween在面板中关闭安全模式

http://forum.demigiant.com/index.php?topic=151.0





猜你喜欢

转载自blog.csdn.net/QQ734821120/article/details/80956408