Unity3D 之 iTween 相关

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

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

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

1、补间函数

现实世界中的运动通常来讲就3种,匀速、加速、减速,经过这3种运动能够组合成另外的运动形式来。一样的,iTween 在对数值进行过渡的时候,也能够匀速、加速、减速,而后经过组合的形式能够实现多种形式的动画效果。动画

各类补间的演示能够在这里看到:easing_demo,还有这里:interactive demo插件

2、回调方法

iTween 的回调函数是经过 SendMessage 来实现的,依赖于 Unity3D 的消息机制,因此限制就是回调是由字符串指定,而且回调的实现必须在 GameObejct 里面。而有些状况下,我在调用 iTween 的时候但愿回调的是一个非派生自 MonoBehaviour 的类的方法,这时候就须要在 GameObject 里面实现一个壳方法,以后再调用目标方法,很是拧巴。htm

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

3、绝对和相对

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

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

4、结尾

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

相关文章
相关标签/搜索