unity3d DoTween动画插件

前言

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。

猜你喜欢

转载自blog.csdn.net/liaoshengg/article/details/81135563