一.通用式动画定义

DoTween 插件导入unity 项目中,并且在脚本内引入命名空间后。就会出现两种API: 一:“注入”到Unity 原有组件类中的api 方法。 语法格式:组件对象名.DOxxx().Setxxx().Onxxx() [对象.动画().属性().事件回调()]; 这种方式称之为“便捷方式”。 二:DoTween 的一组独立的功能类。 DoTween 工具类中的静态方法,然后使用Lambda 表达式传值的方式,来实现动画控制。 这种方式称之为“通用方式”。

二.通用式动画控制

1.语法格式 DOTween.To(() => myValue, x => myValue = x, 100, 1); ___DOTween.To(): DoTween 插件中功能类的一个静态方法; ___()=>myValue: 获取对象元素Lambda 表达式; ___x=>myValue=x: 赋值对象元素Lambda 表达式; ___100: 最终的目标值; ___1: 动画持续的时间。 虽然说DoTween 提供了两种动画方式:快捷方式,通用方式; 但是从开发的角度而言,快捷方式更好用,更简单直观。由下面的代码对比就可以看出来。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;

public class DoTweenObject : MonoBehaviour {

private Transform cube\_Transform;
private Image m\_Image;

void Start () {
    cube\_Transform = GameObject.Find("Cube").GetComponent<Transform>();
    m\_Image = GameObject.Find("Image").GetComponent<Image>();

    //DOTween.To(() => myValue, x => myValue = x, 100, 1);

    /\*
        以下代码每两句一部分,其中上句与下句作用相同,上句是通用式动画控制,下句则是便捷式动画控制。
        部分代码功能重复但是并未注释,这里只做演示,理解即可,实际运行切勿复制代码。
        实际使用时用一种即可,一般使用便捷式动画控制。
    \*/

    //模型位移动画
    DOTween.To(() => cube\_Transform.position, x => cube\_Transform.position = x, new Vector3(3, 5, 3), 2);
    cube\_Transform.DOMove(new Vector3(4, 5, 6), 2);

    //模型缩放动画
    DOTween.To(() => cube\_Transform.localScale, x => cube\_Transform.localScale = x, new Vector3(5, 5, 5), 2);
    cube\_Transform.DOScale(5, 2);

    //图片颜色动画
    DOTween.To(() => m\_Image.color, x => m\_Image.color = x, Color.red, 2);
    m\_Image.DOColor(Color.red, 2);

    //图片透明度动画
    DOTween.To(() => m\_Image.color, x => m\_Image.color = x, new Color(m\_Image.color.r, m\_Image.color.g, m\_Image.color.b, 0.2f), 2);
    m\_Image.DOFade(0.5f, 2);
}

}