转载请注明,原文地址:http://www.benmutou.com/archives/2410
文章来源:笨木头与游戏开发

在游戏开发里,补间动画是不可少的,像简单的向前移动、上下重复飘动、按照预设路径移动等。这些功能要是都自己写的话,游戏得开发到何年何月,所以我们必须要用现成的工具。

1.iTween

我们最常听到的应该就是iTween了吧,反正我到网上一搜,最先看到的就是它。

它确实很好用,官方文档很详细,很整洁,功能也挺全的。

然而,这是在我发现DOTween之前的事情。

2.DOTween

就在前天,我偶然发现了DOTween(以前叫做HoTween),怎么说呢,那真的是相逢见晚(旁白:是恨晚!恨晚!)。

DOTween的官方文档咋一看,感觉年代十分久远,没有iTween那么高大上。

但是,硬着头皮看了之后,我如获至宝。

举个例子吧,

iTween要移动某个物体,需要这么做:

iTween.MoveTo(gameObj, new Vector(2, 3, 2), 0.4f);

而DOTween要移动某个物体,只需要这么做:

gameObject.transform.DOMove(new Vector3(2, 3, 2), 0.4f );

怎么样,是不是DOTween要简单多了…啊个屁啊!完全没区别好吗,不就是静态函数和扩展函数的区别吗,哪里简单多了。

咳咳,是的,如果仅仅是要移动某个物体的话,确实没有什么太大的区别。

但是….

3. 复杂的调用方式

如果我想以恒定的速度移动到某个地方,并且要指定移动方式、移动完成时要回调函数。
那么,iTween需要这样做:

1
2
3
4
5
6
7

       iTween . MoveTo ( gameObject , iTween . Hash (
           "position" , valueTo ,
           "speed" , Speed ,
           "easetype" , iTween . EaseType . linear ,
           "oncomplete" , "ArriveAim"
           )
       ) ;

是的,我得记住一堆字符串参数,虽然我记性不差,但是…我刚刚说到哪来着?

哦,对,虽然我记性不差,但是要记住这些参数还是很讨厌的好吗?

再来看看DOTween是怎么做的:

1
2
3
4
5

       gameObject . transform
           . DOMove ( valueTo , Speed )
           . SetSpeedBased ( )
           . SetEase ( Ease . Linear )
           . OnComplete ( ArriveAim ) ;

我的天啊,这样写代码才是享受啊,我只需要大概记住某个函数的名字就行了,编辑器会提示我有哪些函数可以用,一瞬间就找到了,根本不需要记住它们。

而且,我还能直接一个个函数看注释,等于在看文档,很方便的好吗。

这两天我就在干一件事情,把我目前在开发的游戏的所有iTween替换成DOTween,然后把iTween彻底删掉,再也不用它。

我相信,同为开发者的你,一定更愿意使用DOTween这种调用方式。

而且它的官方文档并没有看起来的那么挫,习惯之后,就会觉得很不错,而且远比iTween的要好。

附上地址:http://dotween.demigiant.com(当然你直接百度DOTween也可以)

4.DOTween的坑

当然,DOTween也有一个小坑。

比如这样的一个功能:角色自动向前移动,遇到进入攻击范围的敌人就停下来,开始攻击。同时,角色会不停上下飘动,不管是不是在移动。

这就有两个需求,上下飘动以及向前移动。上下飘动用DOTween即可实现,向前移动,我还是比较倾向于在Update里修改角色x坐标,这样控制起来比较灵活。

然而,使用DOTween对物体进行上下飘动(MoveTo函数)的过程中,我无法对其修改x坐标(会无效)。

本以为这是DOTween的缺陷,我差点就用iTween来实现这些特殊的地方了。

幸好,我继续研究了官方文档,发现了一个神奇的函数:DOBlendableMoveBy

使用DOBlendableMoveBy移动物体的时候,允许同时存在多个DOBlendableMoveBy调用,相互之间不会覆盖,也不会冲突。

我想,这个就是和iTween的机制一样的东西了,使用这个函数执行动画时,我依旧可以主动去修改物体的坐标,相互之间不会冲突。于是,我的需求完美解决了,DOTween也将成为我未来很长一段时间都会依赖的工具。

5.其他的更好的东西?

如果你还知道比DOTween更好用的工具,请一定要告诉我,对于厉害的工具,我真的完全没有抵抗力。

一定要和我分享。

iTween和DOTween的选择相关推荐

  1. Unity记录——ITween、Dotween实现开关门、判断在门前门后、批量处理单开、双开门以及推拉门

    一.ITween方法实现 using JetBrains.Annotations; using System; using System.Collections; using System.Colle ...

  2. Unity - DOTween库的使用问题

    文章目录 使用 DOTween 来实现的小游戏部分动画内容 封面 封面继续 菜单项 进入对战场景 unity tween libs [Do Tween](http://dotween.demigian ...

  3. Oracle调优总结--1(经典实践 重要)

    Problem Description: 1.每个表的结构及主键索引情况 2.每个表的count(*)记录是多少 3.对于创建索引的列,索引的类型是什么?count(distinct indexcol ...

  4. DoTween(HOTween V2) 教程

    http://www.cnblogs.com/zhaoqingqing/p/3961543.html 官方网站:http://dotween.demigiant.com/ 下载地址:http://do ...

  5. 各版本 DOTween 下载地址

    目录 1.下载地址 2.命名空间 3.设置 4.介绍 5.使用方法 1.下载地址 ​​​​​​​​​​​dotween下载地址 下载完成后,将压缩包解压到任何地方, 将解压后的文件放到你的项目文件目录 ...

  6. 【Unity3D插件】DoTween插件的简单介绍及示例代码

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 unity里面做插值动画的插件有许多,比较常见的有itween.hotwee ...

  7. 零基础Unity做一个中秋诗词鉴赏网页,提前祝您中秋快乐!(DoTween动画 | WebGL视频 | 大文件上传GitHub)

    零基础Unity做一个中秋诗词鉴赏网页,提前祝您中秋快乐! 前言 一,环境搭建 1.1 安装Unity 1.2 添加WebGl模块 二,开发项目 2.1 导入插件 2.2 项目搭建 2.3 逻辑处理 ...

  8. DoTween的使用与详解

    DOTween路径动画详解与使用 转载请注明出处 DOTween插件一般与UGUI结合使用 DoTween的运动方式 1.DOTween.To()方法 对变量做一个动画,通过插值的方式修改一个值的变化 ...

  9. DOTween的使用

    首先我们使用DOTween插件的方法需要引入DG.Tweening命名空间 DOTween官网的接口说明: http://dotween.demigiant.com/documentation.php ...

最新文章

  1. CSDN 中秋节日礼品盒 | 中秋节快乐
  2. 按钮美化,变化显示效果
  3. p20适配鸿蒙系统,适配鸿蒙OS,必须要升级到EMUI 11?最新机型升级名单公布
  4. 毕业后的五年拉开大家差距的原因在哪里?
  5. 虚拟机centos 上安装svn
  6. leetcode 394. Decode String | 394. 字符串解码(用栈做表达式转换)
  7. 容器编排技术 -- Kubernetes Replication Controller
  8. 123_Power PivotPower BI DAX函数说明速查
  9. google+stackoverflow_解决stackOverflow打开慢的问题
  10. ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
  11. javaSE-基础篇-经典赋值:两变量值的交换
  12. Python Day10 MySQL 01
  13. OA系统中公文流转简单思路
  14. [BZOJ1007][HNOI2008]水平可见直线 计算几何
  15. tensorflow学习笔记(3):使用tf.data API导入数据
  16. Windows鼠标指针美化
  17. pq磁盘分区工具的初次使用
  18. TableView图片闪动的问题
  19. U3D性能优化之MeshBaker(带光照)
  20. mysql俩个表怎么创主外洁_单独招生面试题极其详细答案

热门文章

  1. Android百度地图之定位图层
  2. FAT文件系统(stm32)
  3. 「津津乐道播客」#282 科技乱炖:被电子发票干掉的顺丰?
  4. 一些看完让你受益匪浅的英语学习文章和常识(推荐看一下)
  5. 2023年西安Java培训机构十强榜单出炉,快来看看哪家榜上有名~
  6. html单元格边框斜线,excel表头三斜线 将线条的两端放在单元格的边框上
  7. 更方便!微信小程序任务栏功能升级:增加「我的小程序」
  8. 网易有道精品课好在哪里?有知道的大家说一说
  9. java实现低碳生活大奖赛
  10. 心情感受(倍压抑 不想上课)