iTween.cs 下载地址:http://pan.ceeger.com/viewfile.php?file_id=1830&file_key=0UJAymOJ

版本为2.0.43

一.iTween 介绍

iTween是一个动画库,目的是最小的投入实现最大的产出.让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等。

二.iTween 原理

iTween的核心是数值插值,简单说就是给iTween两个数值(开始值,结束值),它会自动生成一些中间值,例如:, 开始值-> 中间值 -> 中间值 …. -> 结束值。

这里的数值可以理解为: 数字,坐标点,角度,物体大小,物体颜色,音量大小等。

三.主要文件有两个iTween.cs 和 iTweenPath.unitypackage(编辑路径才需要这个包)

http://l6.yunpan.cn/lk/Qv44q7AV7emHG

四.如何将iTween 加入项目:

在项目中建立Plugins目录, 然后将下载的iTween.cs放到Plugins目录即可。

如果需要编辑路径, 使用import package->custom package菜单功能加入iTweenPath.unitypackage。

五.几种效果演示

1. 物体移动

iTween.MoveTo(gameObject,new Vector3(,,),);

其中第一个参数是要移动的物体
第二个参数是要移动到的目标点坐标
第三个参数是移动需要的时间,然后物体将在2秒之内移动到坐标点为(x=100,y=200,z=0)的位置。
如果你需要在物体移动过程中更好的控制,我们可以添加更多的参数(所有函数可用的参数列表可以参考http://itween.pixelplacement.com/documentation.php):

iTween.MoveTo(gameObject,iTween.Hash("position",new Vector3(100,200,0),"time",2));

这一段代码的效果与第一个例子效果是一样的,只是第二个参数是一个字典类型的数据,可以设置更多的参数。
通用的参数介绍如下:
position:坐标,包括x,y,z三个轴向
path:路径,是一个坐标数组,后面会讲到iTweenPath脚本的使用,配合着itweenPath可以让物体沿着路径点移动。
x:x轴向的位置,如果只设置了x轴,物体就只移动x轴,y,z轴不会改变
orienttopath:如果设置为true,物体移动到目标点的过程中,z轴会一直朝向下一个目标点
looktarget:物体朝向,物体在移动过程中会一直朝向我们设置的坐标点的坐标

looktime:物体看向looktarget或orienttopath设置坐标的时间
islocal:当物体的目标点是相对于父节点的坐标,需要把isLocal设置为true,否则为false
time speed:这两个参数都可以控制物体移动的快慢
delay:延迟时间,当物体开始移动之前等待时间
easetype:移动模式,我们可以设置一些加速度的效果,这个参数值是一个枚举iTween.Easetype
looptype:循环模式,一共有三种模式
iTween.LoopType.none:不循环
iTween.LoopType.loop:循环,物体移动到终点后会跳到起点重新移动
iTween.LoopType.pingPong:来回循环,物体移动到终点后会再以相同的模式和时间再移动到起点,然后再移动到终点,一直循环
onstart:物体开始移动之前的回调函数
onstarttarget:回调函数接收对象,默认开始之前会向iTween.MoveTo函数的第一个参数的物体发送回调,根据需要在这里设置合适的回调接收者
onstartparams:回调方法的参数
onupdate:物体在移动过程中的回调函数
onupdatetarget:物体在移动过程中回调函数的接收者
onupdateparams:移动过程中回调函数的参数
oncomplete:物体移动完成后的回调
oncompletetarget:物体移动完成后的回调函数的接收者
oncompleteparams:物体移动完成后的回调函数的参数
ignoretimescale:忽略时间缩放,时间缩放是Time.timeScale = 0.5f; 默认值为1,如果我们把时间缩放值设置小于1,我们游戏的整体时间都会放慢,就像播放慢镜头一样,如果设置ignoretimescale为true,无论我们时间怎么缩放,对物体的移动都没有影响。
只要我们了解了itween的其中一个使用方式,其他的都是一样的做法。
我们可以做的动画有:位移,旋转,缩放,音量渐变,摄像机淡入淡出,颜色的渐变,物体振动等很多有用的动画。
2. 数值过渡

iTween.ValueTo(gameObject, iTween.Hash(
"from", y,
"to", toY,
"easetype", easeType,
"loopType", loopType,
"onupdate", "onupdate",
"time", tm
));

3. 振动

iTween.ShakePosition(target, new Vector3(, 0.1f, ), );

4. 按路径移动

var path = GameObject.Find("Plane").GetComponent("iTweenPath").GetPath("myPath");
iTween.MoveTo(gameObject, iTween.Hash(//"position", Vector3(0, 0, 0),
"path", path,
"time", ,
"easetype", "linear"));

以下是iTween插件各方法的大致用法,每个方法都有简单传参和Hashtable定制两种用法,Hashtable可用iTween.Hash()生成,每个方法所需参数及其功能请参考iTween内部提示。

常用方法简介:
AudioFrom:pitch和volum属性提供的是初始值
audioTo:  pitch和volum属性提供的是终结值
audioUpdate:pitch和volum属性提供的是终结值 此方法用于Update()方法中
stab:播放AudioClip一次,不用手动加载AudioSource组件
CameraFadeAdd:创建一个对象可以模拟摄相机的淡入淡出。
CameraFadeSwap:改变摄相机的淡入淡出背景图(对象为CameraFadeAdd返回对象)
CameraFadeFrom:立即改变摄相淡入淡出的透明度然后随时间返回.amount:当执行淡入淡出时,其透明度的变化速度。(透明度越大,淡入淡出越快,个人认为100为满,如果速度较快,时间较长,渐变效果会在时间快要结束时出现。此方法配合CameraFadeAdd使用,只有在CameraFadeAdd前提下,才可以进行淡入淡出操作。此方法为从CameraFadeAdd返回的对象出淡出到原来的界面。
CameraFadeTo:随时间改变摄相机淡入淡出透明度,此方法为从本界面淡入到CameraFadeAdd返回的对象
ColorFrom:即刻改变对象的颜色值然后随着时间改变其回原来的颜色(总的来说,就是对GUIText和GUITexture的颜色的淡入淡出效果)。Color:此属性代表对象变化初始值。与audioFrom有异曲同工之效
ColorTo:随着时间改变对象的颜色组。同上例一样。Color:此属性代表对象变化最终值,与audioTo有异曲同工之效
(注意,ColorFrom和ColorTo还有后面的ColorUpdate方法的NamedColorValue属性,有一些对象不具有NamedColorValue里的属性,运行时会有提示)
ColorUpdate:跟ColorTo类似,但花销的成本较少,此方法在Update方法中被调用
FadeFrom:即刻改变对象的的阿尔法值,然后随着时间将其阿尔法值变回原值。如果对象上有挂载
  a Light, GUIText or GUITexture这些组件,这些组件将成为被执行的对象。
注:阿尔法值可以粗略理解为对象的透明度,值越小,透明度越大。这里的 alpha或者 amount 是变化初值

FadeTo:同上,alpha或amount是变化终值。
FadeUpdate :同FadeTo类似,在Update()方法中调用,提供时刻改变属性值的环境。不局限于 EaseType
LookFrom:即刻旋转物体让其看提供的Vector3或都Transfrom,然后随时间旋转回原来的角度值
注:物体的脸部一般以本地坐标(即物体坐标)的Z轴,脸部朝向方法,即Z轴指向方法。
LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置。
LookUpdate:同LookTo类似,在Update()方法中调用。
MoveAdd:随时间改变游戏对象的位置(原理还有点蒙,感觉跟MoveBy有点像)amount:是改变物体位置的一个值,不是目标位置的坐标。
MoveBy:增加提供的坐标到游戏对象的位置
MoveFrom:立即改变游戏对象的位置为提供的,然后随时间改变游戏对象位置到初始位置
属性:movetopath:Boolean值 ,是否自动将物体置于Ptah的起始点,默认值为真
Path:目标文件可用路径编缉器获得
PunchPosition:对物体的位置添加一个摇晃的力,使其摇晃最终归于原来的位置 其晃动大小和方法由提供的amount(Vector3)决定(方法由Vector3的x,y,z共同决定,晃动大小,由各个方法的值的大小决定)

PunchRotation:对物体的旋转添加一个摇晃的力,使其旋转最终归于初始值。其旋转角度大小和方向由提供的Vector3决定,建议用单轴而不是整个Vector3,例如(0,1,0)是绕Y轴旋转,角度大小由Vector3Y轴值大小决定

PunchScale:对物体的大小比例添加一个摇晃的力,使其大小比例变化最终归于初始值。其大小比例变
化方向和大小由提供的Vector3决定。例如(0,1,0)是在Y轴方向对物体大小变化(即变化物体的高)
,大小由该方向的值大小决定
PutOnPath :根据提供的百分比将游戏物体置于所提供路径上(1为百分之百)。
PointOnPath:根据提供的百分比返回一条路径上的Vector3的位置
RectUpdate:返回一个RECT在提供的两个值之间,大小变化根据提供的速度
Vector3Update:返回一个Vector3在提供的两个值之间,大小变化根据提供的速度
Vector2Update:返回一个Vector3在提供的两个值之间,大小变化根据提供的速度
FloatUpdate:返回一个float在提供的两个值之间,大小变化根据提供的速度
RotateAdd:对游戏物体的旋转角度随着时间增加所提供的欧拉角(顺时针旋转。Vector3三个值解析:
X,Y,Z各代表围绕哪个轴转动。其转动角度就是X,Y,Z、的值的大小。amount:欧拉角大小)
RotateBy:把提供的值乘以360,然后随着时间旋转游戏物体的角度按计算得的值。例 如(0,1,0)就是绕Y轴旋转360度。 顺时针旋转
RotateFrom:立即改变游戏物体角度的欧拉角,然后随着时间旋转回原来的角度,属性提供的欧拉角为变化初始值
RotateTo:旋转游戏物体角度到我们所提供的欧拉角角度。属性提供的欧拉角为变化终结值
RotateUpdate:跟RotateTo类似,该方法在Update中被调用,提供一个可改变属性值的环境。不用局限EaseType
ScaleAdd:随着时间根据提供的amount(Vector3)增加游戏物体的大小
ScaleBy:随着时间变形游戏物体,游戏物体最终变形大小由我们提供的amount(Vector3)值决定 算法:
最终变形大小=游戏物体初始的sacle * 我们提供的 amount值
ScaleFrom:立即改变游戏物体的比例大小,然后随时间返回游戏物体原本的大小。amount:为物体变形的初始大小
ScaleTo:随着时间改变物体的比例大小到我们提供的Scale大小(scale值)
ScaleUpdate:跟ScaleTo类似,此方法用于Update中,提供可改变属性值的环境 ,不用局限于EaeType
ShakePosition:根据提供的amount衰减其值随机摇动游戏物体的位置,其晃动大小和方向由提供的amount(Vector3)决定(方向根据Vector3随机,晃动大小,由各个方向的值的大小决定)
ShakeRotation:根据提供的amount衰减其值随机摆动旋转游戏物体的角度 。Vector3三个值解析:X,Y,Z各代表围绕哪个轴旋转。其转动角度就是X,Y,Z、的值的大小
ShakeScale:根据提供的amount衰减其值随机摆动改变游戏物体的大小。其大小比例变化方向和大小由提供的Vector3决定。例如(0,1,0)是在Y轴方向对物体大小变化(即变化物体的高),大小由该方向的值大小决定
Pause:停止iTween 如果一个iTween以ignoreTimeScale定制且设为True停止工作。 参考不同参数Pause的说明。
Stop:停止iTweens,和Pause一样,不同的参数有不同作用。
Stop By Name:停止指定名字的iTween

ValueTo:返回一个插值在两件值之间的回调函数的值(作用不明)
(Returns a value to a callback method interpolated between the supplied 'from' and 'to' 
values for application as desired. Requires an 'onupdate' callback that accepts the same 
type as the supplied 'from' and 'to' properties.)

Unity3d插件iTween的使用的更多相关文章

  1. Unity3D插件分享

    网上看到一个讲unity3D插件的,看着不错,转载过来. 本文汇总了近百个Unity3D插件,供大家参考下载. 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ...

  2. 安装安卓模拟器和unity3d插件EZGUI

    一.安装安卓模拟器 1.下载安卓模拟器http://www.pc6.com/softview/SoftView_64923.html: 2.安装安卓模拟器. 3.下载安卓apk,然后右键用BlueSt ...

  3. Unity3D插件-自制小插件、简化代码便于使用(新手至高手进阶必经之路)

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

  4. Unity3D 之 iTween 相关

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

  5. [Unity3D插件]2dToolKit系列三 碰撞检测功能的实现以及障碍物的随机摆放

    貌似有一段时间没更新2dtoolkit系列了,这段时间一直在忙着其他事情,今天开始继续这个插件系列的教程,网上搜索,貌似关于这个插件的教程无非还是跟官方的教程很类似,有的甚至都没有自己照着亲手实践一遍 ...

  6. [unity3d插件]2dtoolkit系列一 创建精灵

    从今天开始要做一个2d游戏,由于之前都是做cocos2dx的,然后接触了一段时间的unity3d,都是做3D方面的东西,得知要做2d游戏还是有点开心的,或许因为不想丢失之前的2d游戏的一些思想,然后接 ...

  7. Unity3d插件汇总

    Unity3d 中的svn插件 插件下载地址:http://www.dehome.net/down/viewfile.php?file_id=53

  8. Unity3D 插件大全

    2D_Toolkit 2d动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Script ...

  9. Unity3d插件推荐

    2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...

随机推荐

  1. ios二维码扫描插件,适配当前主流扫描软件,自定义扫描界面。

            二维码介绍: 二维码(QR(Quick Response)code),又称二维条码,最早起源于日本. 它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息 ...

  2. 远程管理之VNC

    远程管理的基本概念 ①RDP(remote desktop protocol)协议 远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的,更多有关RDP协议的可以查看百度百 ...

  3. 【模拟ACM排名】ZOJ-2593 Ranking (Andrew Stankevich’s Contest #5)

    真心是道水题,但找bug找的我想剁手了/(ㄒoㄒ)/~~ 注意几个坑点, 1.输入,getline(cin); / gets(); 一行输入,注意前面要加getchar();   输入运行记录的时候可 ...

  4. ActiveMQ(5.10.0) - Connection Configuration URI

    An Apache ActiveMQ connection can be configured by explicitly setting properties on the ActiveMQConn ...

  5. Linux 命令 - cat: 合并文件至标准输出

    命令格式 cat [OPTION]... [FILE]... 命令参数 -A, --show-all 等价于 -vET. -b, --number-nonblank 对非空输出行编号. -e 等价于 ...

  6. Php 魔术常量

    魔术常量 由于其值在程序运行过程中不允许更改,所以是常量:其值,又是运行环境不同而不现,所以叫魔术. __DIR__            当前脚本文件的路径 示例: __LINE__         ...

  7. 【转】fread函数和fwrite函数

    1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   ( ...

  8. 选择问题(选出第i个最小元素)

    通过分治法解决的分析(还有其他方法解决选择问题如使用 堆) 1 同快速排序一样,对输入的数组进行递归分解 不同的是:快速排序会递归处理分解的两边,而选择问题只处理需要的一边 2 选择问题的期望时间代价 ...

  9. Windows服务器nginx+tomcat服务负载均衡

    一.安装两个tomcat服务自启动 1. 解压两个tomcat,名称为分别1,2 2. 配置环境变量 3. 修改文件server.xml中的三个端口号,使得两个tomcat不冲突 (1)<Ser ...

  10. MySQL和Navicat使用总结

    1.给字段设置默认字符值 ALTER TABLE `v_users`MODIFY COLUMN `picture` varchar(50) CHARACTER SET utf8 COLLATE utf ...