前言
DoTween是个动画插件,可以用来做各种动画,只要给播放动画的对象引用using DG.Tweening; 就可以
使用里面的成员方法等让对象做动画。并且该对象也可以是UI对象
ITween 插件是较旧的动画控制插件,且制作者也不再维护,因此现在使用较少,多用DoTween。
DoTween 在执行效率更高,比ITween 更快。
在Prefabs经过测试,每个Prefabs都有一个iTween,所有Prefabs公用一个DoTween
iTween使用Hastable做参数,DoTween使用函数链的形式
使用DoTween方法时要引入空间名 using DG.Tweening;
函数学习使用
DoMove()函数的
第一个参数是应该是自己的开始位置
第二个参数是目的位置
第三个参数是持续时间
第四个参数是否设置为分割动画,(配合秒钟播放)
public static Tweener DOMove (this Transform target, Vector3 endValue, float duration, bool snapping = false);
后续更新补充。。。
函数链用法
使用transform.调用方法, 然后在方法的参数列表括号后写.(xx)再调用一个方法,
之后写完还可以. 继续调用方法, 最后在结束时用分号 ;结束
transform.DOMove (new Vector3 (5, 5, 5), 5)
.SetEase (Ease.InBack)
.SetDelay (3.0f)
.SetLoops (3, LoopType.Restart)
.OnStart (onStart);//结束用分号
代码例子
DoTween有两种用法,
第一种用transform. 点出来直接调用
第二种方法,使用new个Sequence对象.点出来调用
using UnityEngine;
using System.Collections;
using DG.Tweening;//DoTween使用的命名空间
public class DoTweenBase : MonoBehaviour {
void Update(){
if (Input.GetMouseButtonDown (0)) {
//Do返回值Tweener类的对象接收
Tweener tweener = transform.DOMove (new Vector3 (3, 3, 3), 4);
tweener.SetLoops (3, LoopType.Restart);
//Jump
transform.DOJump (new Vector3 (5, 0, 0), 2, 5, 5);
//震动
transform.DOShakePosition (4);
//Do Tween 中序列动画
//第二种方法,使用Sequence对象
Sequence se = DOTween.Sequence ();
se.Append (transform.DOMove (new Vector3 (5, 5, 5), 5));
//在末尾添加一个回调方法
se.AppendCallback (tCallBack);//在这个动画结束后调用事件,传入函数名
//在末尾添加动画 ,不会同时运行,按代码从上到下顺序运行,
//即 Append移动-AppendCallback打印-Append 旋转
se.Append (transform.DORotate (new Vector3 (180, 0, 0), 5));
//在序列动画中播放某个位置插入动画2表示第二个位置 ,此时先移动,再缩放,再打印,再旋转
se.Insert (2, transform.DOScale (new Vector3 (3, 3, 3), 5));
//一轮动画完成后再执行2轮(一共3轮循环)
se.SetLoops (3, LoopType.Restart);
//开始时延迟5f
se.SetDelay (5f);//开始进入延迟, 在所有动画播放之前(优先级最高)
}
}
}
//.OnStart (onStart);//结束用分号传入事件名
void onStart(){
Debug.Log ("qwqw");
}
//se.AppendCallback (tCallBack);//在这个动画结束后调用事件,传入函数名
void tCallBack(){
Debug.Log ("Sequence中添加的方法");
}
}
学习用法
DoTween Tween 动画感觉是边写边看效果,看播放出来的效果是怎么样的。然后再根据想法来写。
看在写方法的时候看参数的描述,以及看该类的API。