有过 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. web学习之Django--安装

    前提有python,easy_install 关于easy_install 的安装,比较简单的装法 : wget -q http://peak.telecommunity.com/dist/ez_se ...

  2. 巧用margin/padding的百分比值实现高度自适应(多用于占位,避免闪烁)

    本文依赖于一个基础却又容易混淆的css知识点:当margin/padding取形式为百分比的值时,无论是left/right,还是top/bottom,都是以父元素的width为参照物的!也许你会说, ...

  3. 基于bootstrap 的datatable插件的使用(php版)

    Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能.详细学习请参考其官网:http://datatables.net/中文网:http:/ ...

  4. 使用js倒计时还有几天及计时过了几天

    公司主营业务是体育赛事为主的:尤其是足球赛事.现正值2016法国欧洲杯:之前忙于做欧洲杯专题没时间总结.现分享一个工作中需求带来的经历. 需求是:从现在开始倒计时欧洲杯还有多久开赛:当开赛之后开始计算 ...

  5. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  6. 【转】工控老鬼】西门子S7200入门&精通【1】S7200硬件大全

    转载地址:http://blog.sina.com.cn/s/blog_669692a601016i5f.html     工控老鬼提醒以下的信息和资料可能不全或者不准确,如有疑问可以查阅西门子中国网 ...

  7. Candies-POJ3159差分约束

    Time Limit: 1500MS Memory Limit: 131072K Description During the kindergarten days, flymouse was the ...

  8. 使用Xmanager远程访问Redhat Enterprise Linux 6.1

    使用Xmanager远程访问Redhat Enterprise Linux 6.1   在Linux服务器开启gdm 配置防火墙 配置selinux 使用xmanager连接linux服务器 在Lin ...

  9. Boost学习笔记(五) progress_display

    progress_display可以在控制台显示程序的执行进度,如果程序执行很耗费时间,那么它能够提供一个友好的用户界面 #include <boost\timer.hpp> #inclu ...

  10. 【leetcode❤python】 189. Rotate Array

    #-*- coding: UTF-8 -*-#由于题目要求不返回任何值,修改原始列表,#因此不能直接将新生成的结果赋值给nums,这样只是将变量指向新的列表,原列表并没有修改.#需要将新生成的结果赋予 ...