
DOTween is a fast, efficient, fully type-safe object-oriented animation engine, 
optimized for C# 
(it is also the evolution of HOTween, author's previous Unity tween engine).
 



Get Started 查看该教程
using DG.Tweeningtransform.DOMove(vec3,duration) ,在该时间内移动到某个位置DOMoveX 移动X坐标到某位置DOJump,跳动到某位置
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class TestDOWeen : MonoBehaviour
{public int test_type = 0;void Start(){switch (test_type){case 0:transform.DOMove(new Vector3(1, 2, 3), 4);break;case 1:transform.DOMoveX(3, 3);break;case 2:transform.DOJump(new Vector3(4, 5, 6), 3, 5, 6);break;}}
}
 

case 3:transform.DOMoveZ(10, 5).SetEase(Ease.Linear);break;
case 4:transform.DOMoveZ(10, 5).SetEase(Ease.OutQuad);break;
case 5:transform.DOMoveZ(10, 5).SetEase(Ease.InQuad);break;
 

SetLoops 第一个变量表示循环次数,第二个为LoopType枚举类型,可以设置为重新动画,或 yoyo,大概是悠悠球一样再返回的意思?case 6:transform.DOMoveZ(10, 2).SetLoops(2, LoopType.Restart);break;
case 7:transform.DOMoveZ(10, 2).SetLoops(2, LoopType.Yoyo);break;
case 8:transform.DOMoveZ(10, 2).SetEase(Ease.InQuad).SetLoops(2, LoopType.Yoyo); ;break;
 

MeshRender 中的 material 获取DOCOlor 来变换颜色Color 的 rgba 值域均为 [0,1][0,1][0,1],所以使用前需要归一化!case 9:Material mat = GetComponent().material;mat.DOColor(Color.red, 5);break;
case 10:Material mat2 = GetComponent().material;mat2.DOColor(new Color(100.0f / 255, 100.0f / 255, 100.0f / 255), 5);break;
case 11:transform.DOScale(new Vector3(2, 2, 2), 5);break;
   

Tweener 实例,然后调用合适的回调函数即可onComplete 完成时回调OnKill 杀死 twe时回调OnPause 暂停时回调OnPlay 每次播放时回调OnStart 第一次开始播放时回调OnUpdate 没帧播放时回调OnStepComplete 每步播放结束时回调(loop一次算一步)
case 12:Tweener twe = transform.DOScale(new Vector3(2, 2, 2), 3);twe.OnComplete(ChangeColor);break;/** Blablabla */private void ChangeColor(){Material mat = GetComponent().material;mat.DOColor(Color.red, 3);}
  

case 13:Text text = GetComponent();text.DOText("Hello World, this is a message sent by the computer.", 3);break;
  

transform.DOShakePosition() 振动,放在摄像机上甚至可以模拟画面振动效果transform.DOPath() 沿着路径移动,路径为给定的vector3的数组DoRotate() 旋转DoLookAt() 朝向移动DoFade() 消失DoPunchPosition/Rotation/Scale() 类似给你一拳(?)逐渐能量减少的感觉。
Append 添加其 TweenPrepend 表示将 Tween 添加到序列的开头Join 表示将上个添加的 Tween 和该 Tweener 同时播放case 15:Sequence seq = DOTween.Sequence();seq.Append(transform.DOMoveY(3, 2));seq.Append(transform.DOMoveZ(3, 2));seq.Prepend(transform.DOMoveX(3, 2));seq.Join(transform.DOMoveZ(10, 2));break;
 
所以播放效果如下
 
Insert(p,tween) 来将 Tween 设定在时间 p 播放,而不是如上按顺序播放,这样可以允许重叠播放。InsertInterval(p) 表示这 p 秒不播放。放在开头 PrependInterval 就意味着动画延后p秒开始播放AppendCallback/InsertCallback/PrependCallback(),添加回调。Play() 和 Pause() 等方法来控制 tween 的播放
