您的位置:首页 > 移动开发 > Unity3D

Unity itween插件的使用法法整理

2017-11-03 14:29 555 查看
网上有多个不同版本的Itween插件使用方法,但各个地方讲解的比较分散,所以在这里统一进行整理。

一、 iTween的使用原理

iTween的核心是数值插值,简单说就是给iTween两个数值(开始值,结束值),它会自动生成一些中间值,例如:开始值-> 中间值 -> 中间值 …. -> 结束值。
这里的数值可以理解为: 数字,坐标点,角度,物体大小,物体颜色,音量大小等。

二、iTween的使用方式

iTween可以从各个地方获取到,但最正规的方式是从Unity asset store中直接搜索下载(免费)。iTween的主要文件有两个iTween.cs 和 iTweenPath.unitypackage(编辑路径才需要这个包)。

三、核心方法

iTween.MoveTo(): 让模型移动到一个位置,它的底层函数是通过动态的修改模型每一帧的transform.position完成的,所以它会百分之百到达目标点,不会出现误差。

iTween.MoveFrom():它和上面的一样,iTween.MoveTo()是将模型移动到目标位置,而iTween.MoveFrom()是将模型从目标位置移动到原始位置。

iTween.MoveAdd() 和iTween.MoveBy()底层实现一样,大家可以去看源码。处理移动时采用的是transform.Translate也就是API的平移,这样在处理移动的时候可能会出现一些误差,但是效果好点。

iTween.MoveUpdate():和iTween.MoveTo()差不多,只是它需要放在循环或者Update()中。

四、详细内容

API:

后缀名区别***From当前值立即变成目标值,并逐渐缓动成最初值
***To从当前值逐渐缓动成目标值
***Update同To,但是在使用Update函数时会令人难以置信的提高性能,或类似循环的情况下涉及“live”设置改变值。不在使用EaseType
3大事件onstart动画开始触发事件
onstarttarget事件通过消息加载将发送给的对象
onstartparams发送消息时传递的参数
onupdate动画中触发事件
onupdatetarget事件通过消息加载将发送给的对象
onupdateparams发送消息时传递的参数
oncomplete动画结束触发事件
oncompletetarget事件通过消息加载将发送给的对象
oncompleteparams发送消息时传递的参数
公共属性name根据独立的名字用于停止iTweens
ignoretimescale设置为true将会允许动画继续当前的时间,这个在游戏通过设置Time.timeScale=0之后暂停游戏后的菜单动画很有用
easetype动画运动曲线枚举
looptype循环方式枚举
time动画完成时间
delay开始动画之前等待的时间
From-To方法AudioFrom音频和音量
AudioTo
AudioUpdate
CameraFadeFrom摄像机渐隐的数量(透明度)
CameraFadeTo
ColorFrom颜色
ColorTo
ColorUpdate
FadeFrom游戏对象的alpha值;如果附加的组件是light,guitext或guitexture,将会是变成动画的目标
FadeTo
FadeUpdate
LookFrom随着时间旋转一个游戏对象监视着提供的Transform或Vector3
LookTo
LookUpdate
MoveFrom移动:随着时间改变游戏对象的位置到提供的目标点
MoveTo
MoveUpdate
MoveAdd移动增量Vector3
MoveBy
RotateFrom旋转:随着时间在角度上旋转游戏对象到提供的欧拉角角度
RotateTo
RotateUpdate
RotateAdd旋转增量Vector3
RotateBy旋转增量Vector3*360
ScaleFrom缩放:随着时间改变物体的缩放
ScaleTo
ScaleUpdate
ScaleAdd缩放增量Vector3,原来的缩放+Vector3
ScaleBy缩放倍数Vector3,原来的缩放*Vector3
摄像机CameraFadeAdd创建一个游戏对象(如果不存在)在提供的深度,用于模拟摄像机的褪色
CameraFadeDepth改变摄像机褪色的深度
CameraFadeDestroy移除和销毁一个摄像机的褪色
CameraFadeSwap改变摄像机褪色的纹理
CameraTexture使用CameraFade创建并返还一个全屏的Texture2D
动画控制Hash创建哈希表
Init设置游戏对象当一个初始化被添加时避免停顿
Pause暂停itween
Resume从新开始iTween
Stop停止iTweens
StopByName根据名字停止iTweens
其他方法ValueTo正如应用程序期望的返回一个在提供的”from”和”to”之间的插值给回调方法.需要”onupdate”回调
Count返回iTweens的整数量
EaseType缓动类型
LoopType循环的枚举类型
Stab基于提供的音量,音频,和任何跟随的延迟来播放音频剪辑.音频源是可选的,因为iTween将会提供一个
用于调式DrawLine当调用OnDrawGizmos()函数时,他会通过提供的Vector3或Transforms数组画一条线
DrawLineGizmos使用Gizmos.DrawLine()通过提供的Vector3s或Transforms数组画一条线
DrawLineHandles利用Handles.Drawline()通过提供的Vector3s或Transforms数组画一条线。
DrawPath当调用OnDrawGizmos()时,他会通过Vector3或Transforms数组绘制一个曲线路径
DrawPathGizmos使用Gizmos.DrawLine()通过Vector3s或Transforms数组绘制一个曲线路径
DrawPathHandles利用Handles.DrawLine()通过提供的Vector3s或Transforms绘制一个曲线路径
震动PunchPosition使用一个震动的力量给游戏对象的位置使他晃动到他的原始位置
PunchRotation使用一个震动的力量给游戏对象的旋转使他晃动到他的原始旋转
PunchScale使用一个震动的力量给游戏对象的缩放使他晃动到他的原始缩放
ShakePosition随着时间通过一个递减数量随机的震动游戏对象的位置
ShakeRotation随着时间通过一个递减数量随机的震动游戏对象的旋转
ShakeScale随着时间通过一个递减数量随机的震动游戏对象的缩放
路径PathLength返回通过Vector3或Transforms数组绘制的曲线路径的长度
PutOnPath根据提供的百分比放置游戏对象的路径
PointOnPath根据提供的百分比返回一个路径上的Vector3位置
差值运算FloatUpdate根据提供的速度返回一个float缓动在当前和目标值之间;speed=1表示单位时间内达到终点
RectUpdate通过提供的加速度返回一个用于缓冲当前和目标值之间的一个矩形;speed=1表示单位时间内达到终点
Vector2Update通过提供的加速度返回一个用于缓冲当前和目标值之间的一个Vector2;speed=1表示单位时间内达到终点
Vector3Update通过提供的加速度返回一个用于缓冲当前和目标值之间的一个Vector3;speed=1表示单位时间内
动画方式枚举:( http://www.robertpenner.com/easing/easing_demo.html) 
   
   平方

easeInQuad

easeOutQuad

easeInOutQuad

    立方

easeInCubic

easeOutCubic

easeInOutCubic

    4次方

easeInQuart

easeOutQuart

easeInOutQuart

    5次方

easeInQuint

easeOutQuint

easeInOutQuint

    正弦

easeInSine

easeOutSine

easeInOutSine

    2的10次方

easeInExpo

easeOutExpo

easeInOutExpo

    平方根

easeInCirc

easeOutCirc

easeInOutCirc

    线性

linear

    弹簧

spring

    反弹

easeInBounce

easeOutBounce

easeInOutBounce

    后退

easeInBack

easeOutBack

easeInOutBack     

松紧带

easeInElastic

easeOutElastic

easeInOutElastic

动画曲线:
 
  easyIn:淡入
    easyOut:淡出
    easyInOut:淡入淡出

循环类型: none(一次性的不循环),loop(单向循环,就是到达终点后马上回到起点,再继续),pingpong(往复循环)

五、路径配置

1. 将iTweenPath.cs拖至某个游戏对象上, 这个游戏对象的就会多出如下属性,下图表示路径由5个节点组成, 路径名称为myPath。



2. 可以手工填写节点坐标,也可以在场景中调整节点坐标。



代码可以参考官方示例,本文就不进行介绍了。

参考文档:
http://www.xuanyusong.com/archives/2052 http://blog.csdn.net/chaixinke/article/details/44628123 http://www.manew.com/1683.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: