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

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using DG.Tweening; // 添加这个DOTween所在的名字空间
  5.  
  6. public class dotween_use : MonoBehaviour {
  7.  
  8. //开始播放前所调用的函数
  9. void on_tween_start()
  10. {
  11. Debug.Log("on_tween_start");
  12. }
  13.  
  14. //结束播放后所调用的函数
  15. void on_tween_end()
  16. {
  17. Debug.Log("on_tween_end");
  18. }
  19.  
  20. // Use this for initialization
  21. void Start () {
  22. // 创建一个补间动画,在5秒之内移动到目标点,会慢慢停下来,不会很生硬的那种
  23. //Tweener t = this.transform.DOMove(new Vector3(0, 0, 10), 5.0f);//对象t会自动删除
  24.  
  25. //创建一个补间动画,在5秒之内不断缩小,缩小到没有
  26. //t = this.transform.DOScale(new Vector3(0, 0, 0), 5.0f);
  27.  
  28. //创建一个补间动画,在3秒之内绕Y轴旋转145度
  29. Tweener t = this.transform.DORotate(new Vector3(, , ), 3.0f);//这个Vector3(0, 145, 0)是欧拉角,和Unity编辑器里面是一样的
  30. //也有用四元素作为参数的旋转函数
  31.  
  32. t.SetLoops(); //循环播放4次, -1无限制循环播放,每次播放都是重头开始
  33. // this.transform.DOPause(); // 暂停播放;
  34. // this.transform.DOPlay(); // 开始播放;
  35. // this.transform.DOKill(); // 移除补间动画;
  36.  
  37. t.OnStart(this.on_tween_start); // 在动画播放前调用事件
  38.  
  39. t.OnComplete(this.on_tween_end); // 大写(一般用这个),在动画播放后调用事件
  40. //t.onComplete += this.on_tween_end;//小写,是委托,也是在动画播放后调用事件,效果一样
  41.  
  42. }
  43.  
  44. // Update is called once per frame
  45. void Update () {
  46.  
  47. }
  48. }

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

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

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

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

注意:

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

关于Unity中DOTween插件的使用(专题一)的更多相关文章

  1. Unity中DOTween插件的DOTweenPath轨迹移动

    先来看一下DOTweenPath组件的截图 1.Scene View Commands (1)SHIFT+CTRL:add a waypoint        加一个轨迹点 (2)SHIFT+ALT: ...

  2. Unity中DoTween的使用

    在Unity手游开发中,经常用到插值运算,我们可以使用Mathf.Lerp自行去实现效果,但是使用插件提高了我们的开发效率,这里归结一下DoTween的基本使用方式以及效果说明: 直接代码: usin ...

  3. 关于Unity中的声音管理模块(专题七)

    声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音,3D可以根据距离 ...

  4. unity中导入插件时报错处理办法

    错误如下: Unhandled Exception: System.TypeLoadException: Could not load type 'System.ComponentModel.Init ...

  5. Unity中嵌入网页插件Embedded Browser2.1.0

    背景 最近刚换了工作,新公司不是做手游的,一开始有点抵触,总觉得不是做游戏自己就是跨行了,认为自己不对口,但是慢慢发现在这可以学的东西面很广,所以感觉又到了打怪升级的时候了,老子就在这进阶了. 一进公 ...

  6. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  7. unity缓动插件DOTween Pro v0.9.680

    DoTween Pro是一款unity插件,是unity中最好用的tween插件,比起Dotween的免费版要多很多功能,实现脚本和视觉脚本的新功能,支持包括移动,淡出,颜色,旋转,缩放,打孔,摇动, ...

  8. 高速上手Unity中最好的补间动画插件DFTween

     出处:http://blog.csdn.net/u010019717 author:孙广东      时间:2015.3.17   23:00 DFTween 是一个在 Unity 游戏引擎中高 ...

  9. Unity中内嵌网页插件UniWebView

    一.常见Unity中内嵌网页实现方式: 1.UnityWebCore只支持windows 2.Unity-Webview支持Android,IOS 3.UniWebView支持mac os,Andro ...

随机推荐

  1. Android动画三部曲之中的一个 View Animation & LayoutAnimation

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50612827 本篇文章对android的Tween动画和帧动画以及布局动画进行总结. ...

  2. android studio : clang++.exe: error: invalid linker name in argument '-fuse-ld=bfd

    公司jenkins上的C++编译器最近换成了clang,今天更新了代码发现本地的C/C++代码用NDK编译不过了,提示: “clang++.exe: error: invalid linker nam ...

  3. 多个inputstream的情况下,watermark的值怎么赋值? kakfa中多个partition提取 watermark

    1,org.apache.flink.streaming.api.operators; AbstractStreamOperator public void processWatermark1(Wat ...

  4. 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

    在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 01.乐观锁 vs 悲观 ...

  5. angular五种服务详解

    在这之前angular学习笔记(十五)-module里的'服务'这篇文章里,已经大致讲解了ng中的'服务',在之后的很多地方也用到了服务,但是,所有的服务都是使用app.factory来创建的.但其实 ...

  6. python(56):正则表达式积累

    来源:http://www.runoob.com/python/python-reg-expressions.html re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果 ...

  7. sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类

    sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类 详述 使用sbt对写的Spark程序打包,过程中没有问题 spark-submit提交jar包运行提示找不到对应的类 解 ...

  8. hadoop的五个守护进程【转】

    hadoop的五个守护进程  [转自]:http://xubindehao.iteye.com/blog/1395580 一般如果正常启动hadoop,我们可以在master上通过jps命令看到以下5 ...

  9. ios 6.1中 Release问题

    程序中有如下代码: UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Something was done." m ...

  10. Android VLC播放器二次开发2——CPU类型检查+界面初始化

    上一篇讲了VLC整个程序的模块划分和界面主要使用的技术,今天分析一下VLC程序初始化过程,主要是初始化界面.加载解码库的操作.今天主要分析一下org.videolan.vlc.gui.MainActi ...