zoukankan      html  css  js  c++  java
  • 关于Unity中DOTween插件的使用(专题一)

    DOTween

    flash里面的一个概念叫补间动画,DOTween就是干这个事情的。

    补间动画:在1秒钟之内从A点移动到B点,在这个之间会把动画补间补好。

    当我们安装好DOTween后,它就会提供很多补间的功能方便我们使用。当我们安装了这个插件以后,我们就可以快速使用代码来生成补间动画。

    例子:赛车选择界面,旋转赛车后有一个慢慢回弹的动画效果。

    安装DOTween
    1: 去网站http://dotween.demigiant.com/getstarted.php下载
    2: 将DOTween解压后复制到项目的任意目录下(Editor, Plugins or Resources除外);
    3: 运行DOTween的Setup: 菜单栏的 Tools/Demigiant;
    4: 在代码里面 加上 DOTween的名字空间 using DG.Tween;
    5: 安装完DOTween插件后,很多组件能够支持Tween;

    DOTween对组件的扩展

    1: 其他的组件扩展了Tween接口: 详情见文档:
    http://dotween.demigiant.com/documentation.php
      AudioMixer
      AudioSource
      Camera
      Light
      Material:
      Rigidbody:
      Rigidbody2D:
      Transfrom
    2: 例如Transfrom组件:
      (1)组件实例.DOMove: 平移;
      (2)组件实例.DOScale: 缩放;
      (3)组件实例.DORotate 旋转;

    Tweener常用操作

    1: 常用的播放控制函数
      组件实例.DOPause(); 暂停一个Tween;
      组件实例.DOPlay/DOPlayBackwards/DOPlayForward; 播放
      组件实例.DOKill; // 杀掉Tween;

    2:设置循环次数 t.SetLoop(); -1:为一直循环;
    5: Tweener 常用的事件:
      (1)OnStart();
      (2)OnComplete();
      (3)OnKill();
      (4)OnUpdate();

    DOTween实例

    1.创建Unity项目

    2.解压下载的DOTween_1_1_620_hc.zip,复制文件夹到Unity项目目录的根目录下,根据提示点Setup DOTween,完成后多出两个文件夹

    3.再创建Scripts和Scenes文件夹,保存场景

    4.创建一个立方体Cube,再创建一个脚本dotween_use

     打开dotween_use

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using DG.Tweening; // 添加这个DOTween所在的名字空间
    
    public class dotween_use : MonoBehaviour {
    
        //开始播放前所调用的函数
        void on_tween_start()
        {
            Debug.Log("on_tween_start");
        }
    
        //结束播放后所调用的函数
        void on_tween_end()
        {
            Debug.Log("on_tween_end");
        }
    
        // Use this for initialization
        void Start () {
            // 创建一个补间动画,在5秒之内移动到目标点,会慢慢停下来,不会很生硬的那种
            //Tweener t = this.transform.DOMove(new Vector3(0, 0, 10), 5.0f);//对象t会自动删除
    
            //创建一个补间动画,在5秒之内不断缩小,缩小到没有
            //t = this.transform.DOScale(new Vector3(0, 0, 0), 5.0f);
    
            //创建一个补间动画,在3秒之内绕Y轴旋转145度
            Tweener t = this.transform.DORotate(new Vector3(0, 145, 0), 3.0f);//这个Vector3(0, 145, 0)是欧拉角,和Unity编辑器里面是一样的
                                                                                                                //也有用四元素作为参数的旋转函数
    
            t.SetLoops(4); //循环播放4次, -1无限制循环播放,每次播放都是重头开始
            // this.transform.DOPause(); // 暂停播放;
            // this.transform.DOPlay(); // 开始播放;
            // this.transform.DOKill(); // 移除补间动画;
    
            t.OnStart(this.on_tween_start); // 在动画播放前调用事件
    
            t.OnComplete(this.on_tween_end); // 大写(一般用这个),在动画播放后调用事件
            //t.onComplete += this.on_tween_end;//小写,是委托,也是在动画播放后调用事件,效果一样
    
        }
        
        // Update is called once per frame
        void Update () {
            
        }
    }

    5.运行的时候会多出这两个节点,不能删除或者隐藏,否则DOTween动画将停下来

    Sequence队列

    1: 创建一个队列容器: DOTween.Sequence()
    2: 将Tween加入到容器队列 seq.Append(tween);
    3: SetLoops():设置队列容器的循环次数;
    4: Insert: 插入一个并行的Tween;

    Sequence实例

    1.创建Unity项目

    2.解压下载的DOTween_1_1_620_hc.zip,复制文件夹到Unity项目目录的根目录下,根据提示点Setup DOTween,完成后多出两个文件夹

    3.再创建Scripts和Scenes文件夹,保存场景

    4.创建一个立方体Cube,再创建一个脚本dotween_use

     打开dotween_use

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using DG.Tweening; // 添加这个DOTween所在的名字空间
    
    public class dotween_use : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
            // 队列容器
            // (1)创建一个队列
            Sequence seq = DOTween.Sequence();
            // (2)将一个Tweener对象放到队列的后面
            seq.Append(this.transform.DOMoveX(10, 5.0f));//在5秒之内移动到目标点
            seq.Append(this.transform.DOMoveX(0, 5.0f));//在5秒之内移动到原点
            seq.SetLoops(-1);//无限循环播放
    
            // 插入一个Tweener对象到队列的某一个时刻,这里时刻是0
            seq.Insert(0, this.transform.DOScale(new Vector3(2, 2, 2), 5.0f));//从0秒开始,在5秒内不断放大到两倍
    
        }
        
        // Update is called once per frame
        void Update () {
            
        }
    }

    Ease缓动效果

    1: Tweener设置缓动动画:
    SetEase(效果类型);
    2: 效果类型:
    OutBack: 快速移动超出目标,然后慢慢回到目标点;
    .....

    Ease缓动效果案例

    1.创建Unity项目

    2.解压下载的DOTween_1_1_620_hc.zip,复制文件夹到Unity项目目录的根目录下,根据提示点Setup DOTween,完成后多出两个文件夹

    3.再创建Scripts和Scenes文件夹,保存场景

    4.创建一个立方体Cube,再创建一个脚本dotween_use

     打开dotween_use

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using DG.Tweening; // 添加这个DOTween所在的名字空间
    
    public class dotween_use : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
            //缓动效果
            Tweener t = this.transform.DORotate(new Vector3(0, 270, 0), 3.0f);//在3秒之内绕Y轴旋转270度
            t.SetEase(Ease.OutBack);//添加一个回弹的效果,还有很多的效果可以Ease.XXX里面查找,选中Ease按F12
    
            //this.transform.DOMoveX(4, 3.0f).SetEase(Ease.OutBack);//有回弹效果的移动
        }
        
        // Update is called once per frame
        void Update () {
            
        }
    }

     注意:

    每次按某个函数的F12的时候,发现我们实际使用的函数参数其实并没有完整,实际上我们没有填的参数系统会用默认的参数来填充,所以只要填有用的就函数参数就好了。

  • 相关阅读:
    黑盒测试用例设计--题目3
    黑盒测试用例设计--题目2
    性能测试中TPS上不去的几种原因
    软件性能测试指标建议值
    Jmeter插件解释
    JDBC Connection Configuration配置正确,提示Error preloading the connection pool
    Vmware 不能上网
    dijkstra算法优先队列
    Django 模型与 Mysql 数据类型对应
    Win 无法安装 python 包
  • 原文地址:https://www.cnblogs.com/HangZhe/p/7284502.html
Copyright © 2011-2022 走看看