有过 Flash 开发经验的朋友,对这个 iTween 应该感到非常熟悉吧,在 Flash 平台有一款功能几乎一样的插件 TweenLite,至于哪个先哪个后,有没有相互借鉴之类的就不在讨论范围了。

简单的说,iTween 是一个补间工具(引擎),它的功能是:在指定的时间内,将指定的属性,从指定的值以特定的速度逐步过渡到另一个值,另外还可以指定每一帧的回调以及结束后的回调。由于属性值的改变导致游戏画面的改变,所以便有了动画的效果。之前看到有人说 TweenLite 是缓动引擎,这个缓动听起来挺拧巴的,我认为补间更形象一些。

了解的 iTween 的本质后,便可以想见,它的作用并不仅仅是做动画,凡是需要对数值进行过渡的地方都可以使用 iTween。iTween 和 TweenLite 比起来,有点更偏向于动画方面的,限制也多一些,不过大体来说基本的功能都可以实现,不太好实现的部分也可以变通来实现。以下讨论比较有意思的几个话题。

一、补间函数

现实世界中的运动一般来说就3种,匀速、加速、减速,通过这3种运动可以组合成另外的运动形式来。同样的,iTween 在对数值进行过渡的时候,也可以匀速、加速、减速,然后通过组合的形式可以实现多种形式的动画效果。

各种补间的演示可以在这里看到:easing_demo,还有这里:interactive demo

二、回调方法

iTween 的回调函数是通过 SendMessage 来实现的,依赖于 Unity3D 的消息机制,所以限制就是回调是由字符串指定,并且回调的实现必须在 GameObejct 里面。而有些情况下,我在调用 iTween 的时候希望回调的是一个非派生自 MonoBehaviour 的类的方法,这时候就需要在 GameObject 里面实现一个壳方法,之后再调用目标方法,非常拧巴。

解决的方法就是修改源码,让 iTween 支持自定义回调:为 iTween 指定特定的回调 : onupdate, oncomplete

三、绝对和相对

MoveTo 是绝对运动,其中的参数 position 表示当前物体移动到指定的位置。

MoveAdd 是相对运动,表示在当前的基础上加上参数 position 的值。

四、结尾

最新版本的 iTween 取消了一些的方法,同时提供了另外的替代方法。其中让我非常蛋疼的是取消了贝塞尔曲线,而且居然推荐我用 path 来替代,试了一下这个 path 参数,效果简直是惨不忍睹。

Unity3D 之 iTween 相关的更多相关文章

  1. 第一章-第二题Unity3D游戏引擎相关--By林培文

    1) 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的?  他们的目标都是盈利么?  他们的目标都是赚取用户的现金么?还是别的? 2004年,Unity3D诞生于丹麦哥本 ...

  2. Unity3d 音效模块相关

    关于Unity的音效方面,主要关注以下3个类: Audio Clip : audio data,导入到unity中的音频文件都是audio clip. Audio Sources : 挂载这audio ...

  3. Unity3d插件iTween的使用

    iTween.cs 下载地址:http://pan.ceeger.com/viewfile.php?file_id=1830&file_key=0UJAymOJ 版本为2.0.43 一.iTw ...

  4. iTween的用法总结

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

  5. Unity3D性能优化--- 收集整理的一堆

    http://www.cnblogs.com/willbin/p/3389837.html 官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Ma ...

  6. Unity3d之音效播放和调用手机震动

    http://blog.csdn.net/sunshine_1984/article/details/12943979 今天研究了下Unity3d音效播放相关内容,整理下实现细节. 1,添加音效文件到 ...

  7. Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D

    游戏动画基础 Animation组件 Animation组件是对于老的动画系统来说的. 老的动画形同相应的动画就是clip,每一个运动都是一段单独的动画,使用Play()或CrossFade(),直接 ...

  8. Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现(不定期更新中~~~)

    目录 Unity3D手机斗地主游戏开发实战(01)_发牌功能实现 Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现 一.大体思路 前面我们实现了点击开始游戏按钮,系统依次给玩家发牌的逻辑和 ...

  9. Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现

    大体思路 前面我们实现了点击开始游戏按钮,系统依次给玩家发牌的逻辑和动画,并展示当前的手牌.这期我们继续实现接下来的功能--叫地主. 1.首先这两天,学习了DOTween,这是一个强大的Unity动画 ...

随机推荐

  1. Samsung S4卡屏卡在开机画面的不拆机恢复照片一例

    大家好!欢迎再次来到我Dr.wonder的世界, 今天我给你们带来Samsung S4 I9508 卡屏开在开机画面的恢复!非常de经典. 首先看图 他开机一直卡在这里, 然后 ,我们使用专业仪器,在 ...

  2. fetch 关于七牛的content-type 的问题

    七牛要的Content-Type: multipart/form-data; boundary=<frontier>:那个boundary(formdata分隔符)是浏览器自己加的,不用管 ...

  3. thinkPHP 5.0.x 使用SQLite3 进行缓存设置 Cache

    1. 配置 thinkPHP cache [application/config.php] 把type设置为sqlite3(默认是小写,第一个字母不区分大小写) 把path换成db,并指定sqlite ...

  4. Dynamics AX 2012 R2 无法创建类"Excel.Application"的COM对象

        Reinhard在做一个Excel导入项目时,发现X++代码一旦执行到Excel组件部分,就会报如下错误: 无法创建类"Excel.Application"的COM对象.请 ...

  5. Java泛型详解 转载

    转载地址:http://blog.csdn.net/jinuxwu/article/details/6771121 比较好的讲解: http://blog.csdn.net/lonelyroamer/ ...

  6. css 水平垂直居中

    主要是垂直居中有点麻烦,以下代码可以实现,先记下来: <style type="text/css"> div{ border:1px solid #ccc; heigh ...

  7. jQuery 增加 删除 修改select option .

    jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...

  8. [java报错]Could not instantiate listener XXXXXX

    写在开头的话: 兜兜转转,辞去了深圳的工作,回到了武汉,从事的居然一度是我最不想学的语言-java,曾经以为自己并不会java,但是上手之后,发现语言都是相通的,自己一度排斥学习java真的是不能再傻 ...

  9. iOS runtime实用篇解决常见Crash

    程序崩溃经历 其实在很早之前就想写这篇文章了,一直拖到现在. 程序崩溃经历1 平时开发测试的时候好好的,结果上线几天发现有崩溃的问题,其实责任大部分在我身上. 我的责任: 过分信赖文档,没进行容错处理 ...

  10. java中变量命名和引用变量的一个坑

    这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点.