大家好。书记先致欢迎词

今天我们一起来研究一下DOTween动画插件。

对于该插件官网上的介绍是:“DOtween是一种快速,高效,完全类型安全的面向对象的动画引擎。”

将它导入Unity中,可以很方便快速地帮我们完成许多动画效果。本篇文章主要将通过一些小案例来介绍DOTween的使用方法和主要功能。

DOTween导入:

打开Unity创建一个新工程,将下载好的DOTween插件直接拖入Project面板:

基本用法

一.移动动画

创建一个小球,位置设为世界坐标原点(0,0,0),挂上此脚本:

using DG.Tweening; //引入命名空间public class DOTWeenTest : MonoBehaviour

{

void Start()

{

transform.DOMove(new Vector3(4, 3, 0), 3); //脚本物体3秒从当前位置移动到世界坐标(4,3,0)位置 }

}

我们发现,使用的DOTween插件后,transform居然能够点出DOMove方法,这是因为C#的拓展性,使其和Unity的一些类能产生链接,是不是感觉很神奇。因为这些特性,使我们在使用起来非常简单易懂,想让哪个物体动,就让它的transform组件来调用DOTWeen的方法就可以了。

DOMove相关方法:

世界坐标上移动:transform.DOMove

本地坐标上移动:transform.DOLocalMove

世界坐标的X轴上移动:transform.DOMoveX

本地坐标的X轴上移动:transform.DOLocalMoveX

通过以上的方法,我们学会了制作移动动画,但这个动画会自动播放,并且,播放完了就销毁了,不能重复使用,后面我们会通过一些设置来避免。

二.From()方法的使用

2秒时间从世界坐标(2,2,0)处回到自身当前位置:

transform.DOMove(new Vector3(2, 2, 0), 1).From();

从以自身为原点的坐标系(2,2,0)处回到自身当前位置:

transform.DOMove(new Vector3(2, 2, 0), 2).From(true);

三.动画正放与倒放

1.场景中创建两个按钮,来控制动画的播放顺序:

2.为小球挂上脚本:

using DG.Tweening; //引入命名空间public class DOTWeenTest : MonoBehaviour

{

Tweener twe; //声明一个Tweener对象 void Start()

{

twe = transform.DOMove(new Vector3(3, 4, 0), 2);//将动画保存在Tweener对象中 twe.Pause();//暂停,防止自动播放 twe.SetAutoKill(false);//关闭动画自动销毁 }

//创建两个方法事件,控制前放后倒放 public void Forward()

{

twe.PlayForward(); //该动画正放 }

public void Back()

{

twe.PlayBackwards(); //该动画倒放 }

}

3.将两个方法分别挂在各自按钮上,运行程序:当点击了前放后才能倒放,也就是说不能一上来就倒放。

其它方法:

Pause(): 暂停动画

SetLoops(3): 循环3次

四.设置动画曲线

在以上我们展示的动画效果中我们,我们通过观察可以看到,物体在播放移动动画时速度是由快到慢(倒放除外),这种现象是由动画播放时的动画曲线决定的,我们是可以通过修改动画曲线来改变物体动画效果的,比如我们可以将运动效果改成由慢到快:

void Start()

{

Tweener twe = transform.DOMoveX(5, 2); //3秒时间在世界坐标中,让X轴移动到5的位置 twe.SetEase(Ease.InCubic); //由慢到快}

而动画曲线的种类非常多,可以自己去试试看:

五.使用动画改变颜色

既然让物体移动是通过使用transform来点出DOTWeen的方法,那改变颜色就是让材质组件来调用DOTWeen的方法即可:

void Start()

{

Material material = GetComponent().material;

material.DOColor(Color.red, 3); //3秒变红}

六.动画事件

Material material;

Tweener twe;

void Start()

{

material = GetComponent().material;

twe = material.DOColor(Color.red, 3); //3秒变红 twe.OnComplete(ChangeColour); //动画播放结束时调用}

void ChangeColour() //变色{

twe = material.DOColor(Color.blue, 2); //2秒变蓝}先变红,再变蓝

动画事件相关方法:

OnStart: 动画第一次播放时调用

OnPlay: 动画每次从暂停状态解除时调用(包括初次播放)

Pause: 动画暂停时调用一次

OnUpdate: 动画播放过程中每帧调用

OnStepComplete: 每次动画播放结束时调用(受循环次数影响)

OnComplete: 每次动画播放结束时调用(不受循环次数影响,且倒放时不适用)

七.文本动画

1.让文本逐字显示:

使用UGUI创建一个Text,挂上该脚本:

void Start()

{

Text text = GetComponent();

text.DOText("最心爱的情人,却伤害我最深,为什么你背着我爱别人", 5); //5秒时间将这段文字逐字显示 text.DOColor(Color.green, 5); //颜色逐渐变绿}

我们可以结合刚才讲到的动画事件,来组一个连续的文字显示:

代码如下:

void Start()

{

Text text = GetComponent();

Tweener twe = text.DOText("下面是有奖竞猜:", 2);

twe.OnComplete(() =>

{

text.text = "";

text.DOText("富奸老贼是怎么死的?", 2);

});

}

2.让文本逐渐显示:

首先要让文字调成完全透明状态:

挂上脚本运行程序:

void Start()

{

Text text = GetComponent();

text.DOFade(1, 2); //2秒时间让A值变为1}

八.屏幕抖动动画:

很多游戏中经常会用到的效果,比如在战斗的时候,主角被攻击会伴随着一阵屏幕抖动,然后

以此来提高游戏打击感,其实所谓的屏幕抖动其实就是摄像机位置的抖动,还是离不开Transform动画:

void Start()

{

//transform.DOShakePosition(2); //在随机方向震动2秒,幅度默认为1 transform.DOShakePosition(2, 3); //在随机方向震动3秒,振幅为3 }

将这个脚本挂摄像机上,运行程序:

或者:

void Start()

{

//transform.DOShakePosition(2); //在随机方向震动2秒,幅度默认为1 //transform.DOShakePosition(2, 3); //在随机方向震动2秒,振幅为3 transform.DOShakePosition(3, new Vector3(0, 2, 0));//只在世界坐标Y轴上震动3秒,振幅为2 }右下角的摄像机视角可看到,在X轴上并没有发生位移。

抖动动画不仅有位置上的抖动,还有选择上的抖动和缩放上的抖动:

旋转抖动: transform.DOShakeRotation

缩放抖动: transform.DOShakeScale

我们来看下缩放抖动是什么效果:

创建一个脚本挂在一个Cube上:

void Start()

{

transform.DOShakeScale(2, new Vector3(3, 2, 0));

}

九.可视化编辑

除了使用脚本来播放DOTween动画外,该插件还拥有可视化编辑的功能。

动画编辑器

1.为需要做动画的物体添加DoTweenAnimation组件:

直接点击可以进行打开或关闭

2.选择要做动画的组件:这里面就包括了我们之前介绍的移动,变色,抖动,文字显示等功能。

3.当要做动画的组件不存在时则报错,非常方便:该物体上没有Text组件。

4.各种参数:

5.当在编辑器关闭了自动播放后,使用代码播放:

public DOTweenAnimation a; //在编辑器界面将挂有该组件的物体拖进来void Start()

{

a.DOPlayForward();

}

6.如果不使用代码,使用点击按钮播放,在按钮的事件窗口将物体拖进去,找到DoTweenAnimation组件,调用播放方法:

路径编辑器

使用该组件可以做一些寻路的效果:

1.场景中创建一个Cube,添加DoTweenPath组件:

2.运行程序:

十.结语

以上简单介绍了DOTWeen的常用技巧,但可以肯定的是,DOTWeen是一个非常强大的工具,还有很多潜力在我这篇文章中没有挖掘出来,大家下来可以自行进行更深层次的研究。

是不是感觉少了点什么?

想系统性学习游戏开发、Unity开发的,欢迎围观:

在线的教学视频:

以及QQ交流群:869551769

dotween上下摆动_DOTWeen插件使用技巧相关推荐

  1. dotween上下摆动_DoTween用法教程

    DoTween用法攻略 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心创新 ...

  2. maven项目包导不进去_IntelliJ Idea下Maven插件使用技巧

    标签:Idea Maven IntelliJ Idea下Maven插件使用技巧,对于开发人员快速上手,并可能有效提高开发效率,特将此整理分享给大家. 1.Idea下载右侧菜单可打开Maven操作面板, ...

  3. 有插件有技巧,Sketchup牛人必备!

    今天的教程主要给大家讲解的是关于Sketchup的基础技巧及常用插件.所有学景观设计的童鞋想必都用过Sketchup,然而如何才叫会用?是否用得又快又好?决定着你的工作效率和质量,所以掌握必备的技巧及 ...

  4. vim常用插件及技巧

    嵌入式软件搬砖工一枚,工作中主要使用C语言,因此本文介绍的插件以及技巧主要针对C语言的环境. 一.插件篇 1. 2. 3. 4. 二.技巧篇 1. 显示当前光标处于哪一个函数 如果一个函数过长,通过  ...

  5. python中的ideavim有什么作用_IdeaVim插件施用技巧

    IdeaVim插件使用技巧在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还 ...

  6. IdeaVim插件使用技巧

    在  IDEA Intellij小技巧和插件  一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考. ...

  7. VisualStudio神级插件Resharper技巧基础入门到骨灰玩家使用全教程+Resharper性能优化

    我相信很多做.NET开发的童鞋应该都装了Resharper这个重量级插件,但在我的印象里很多人也就只用到了他的一些基本功能,可能算是大材小用了吧,某天,在跟一同事进行结对编程的时候,看到同事也安装了R ...

  8. IDEA实用插件和技巧

    <解决lambda expressions are not supported at this language level的问题> <Intellij Idea 代码格式化/保存时 ...

  9. dotween路径移动_Unity---DOTween插件学习(3)---获取数据、协程、路径动画

    [Toc] 本文及系列参考于Andy老师的DOTween系列 欢迎大家关注**Andy老师** 10.获取数据 类方法 返回所有暂停的动画,没有则返回null var list = DOTween.P ...

  10. 又学一招——Chrome 插件安装技巧

    最近在学习WEBAPI  由于没有界面可以调试,需要安装Chrome中的插件 PostMan,一个可视化调用api的过程. 接下来,好好看看WEBAPI 和异步编程的方式 另外还有sql实现空间坐标的 ...

最新文章

  1. 关于搭建fis3 工程的过程记录
  2. Apache服务器和tomcat服务器有什么区别?
  3. 大学python用什么教材-最好的Python入门教材是哪本?
  4. MongoDB学习笔记Day3
  5. 计算机组成原理 第五章【中央处理器】课后作业解析【MOOC答案】
  6. sata接口测试软件,方便用户,技嘉放出6系列主板SATA接口检测软件
  7. 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
  8. html5音乐播放器设计论文,基于微信小程序的音乐播放器设计和毕业论文
  9. python数据结构-串
  10. @开发者 区块链技术如此火爆 你却只能望而却步?京东云为你配齐装备!
  11. SD卡, EMMC固化 ,关于bootloader linux
  12. (转)ZooKeeper伪分布式集群安装及使用
  13. ES Search After 分页查询
  14. 机器学习面试150题:不只是考SVM xgboost 特征工程
  15. 我所理解的生活(韩寒)
  16. 请帮我查看一下2.19号邢台发往北京高铁的班次,以及各个班次的时间
  17. 关于Ubuntu22.04无法定位软件包
  18. 指纹识别综述(1): 导论
  19. 如何将微服务应用设计为四层结构:平台层/服务层/边界层/客户端层
  20. BFC(Block Formatting Context) 及其如何工作

热门文章

  1. Asp.net core 中实现AOP面向切面编程
  2. java reader类 实例_Java文件类操作实例总结
  3. (超详细)Eclipse使用教程——使用Eclipse创建第一个HelloWorld!
  4. 国内外流行的JS游戏开发框架介绍---kalrry
  5. windows进程 windows多进程编程
  6. 差分管电路图_DIY一款差分输入的晶体管功放电路图
  7. mavonEditor编辑器的使用
  8. BitTorrent详解
  9. Mac刷新DNS,修改/etc/hosts立即生效
  10. 数字超材料uv坐标matlab,基于数字编码超材料和压缩感知的实孔径雷达成像方法与流程...