iTween控制运动路由器穿墙效果排行榜怎么办?

2806人阅读
iTween官方文档地址
1.&&&&&&&CameraFade(摄像机的渐隐)
其中Camera或者场景的东西并没有消失,只是在屏幕上贴了一张贴图
首先,要用到摄像机的渐隐/显功能的话,必须调用CameraFadeAdd()函数,来添加背景图片,不然在运行时会包错。
下面来讲解一下CameraFade里面需要用到的几个函数
1)& CameraFadeAdd()& //当不传参的时候,会默认一个黑色的背景
CameraFadeAdd(Texture2D texture) &&& //摄像机视图渐隐后显示texture
CameraFadeAdd(Texture2D texture,int depth)&&&&& //同上,depth的作用暂时不知道,猜测与分层有关,可能类似PS中的图层
2)CameraFadeDepth(int depth)&& //改变刚才texture的depth
3)CameraFadeDestroy()&&&&&&&&&&&& //移除并摧毁
4)CameraFadeTo(float amount,float time)& 从当前视图转换到前面设置的视图(texture)
//amount透明度,介于0~1之间。等于1
时Texture完全覆盖Camera视图
//time是达成该效果需要多少秒
CameraFadeTo(Hashtable args)&&&&&&&&&&&&& //用哈希表可以设置更详细的内容
此函数的哈希表key有:name,amount,time,delay,easetype,looptype,onstart等,KEY作用以及值参考提供的EXCEL文档中的HASHTABLE项
5)CameraFadeFrom(float amount,float time)
CameraFadeTo(Hashtable args)
//从前面设置的视图(texture)转换到当前视图,参数参考CameraFadeTo
6)CameraTexture(Color color)&& //创建一个单色的用于CameraFade的texture2d
2.&&&&&&&Audio音频
同CameraFade一样,itween中对音频的控制也并没有结束音频的播放,而是控制的音频的音量(volume)和音调(pitch)。音频文件赋值到某个GO上,将GO给函数传参
1)AudioTo(GameObject target, float volume, float pitch, float time)& //target为挂载音频的对象,volume/pitch为最终要达到的音量/音调(volume的值为0~1),达到目的所需的时间
AudioTo(GameObject target, Hashtable args)
//hashtab参数:name,audiosource,volume,pitch,time,delay,easetype,looptype,onstart等
其中Audiosource是你挂载音频的物体
2)AudioFrom(GameObject target, float volume, float pitch, float time)
AudioFrom(GameObject target, Hashtable args)
这个就不详解了,就一个FROM和TO的区别,参数都一样
3)AudioUpdate(GameObject target, float volume, float pitch, float time)
AudioUpdate(GameObject target, Hashtable args)
a)这个函数主要用在那种会循环调用的函数里面,比如系统的Update()函数,它会不断的降低音量音调来接近你设置的那个值,降低那个差值会递减。
b)这里需要注意的是,即使使用hashtable也只有以下这几个参数:
audiosource,volume,pitch,time
3.&&&&&&&Color(颜色)
函数类似上面的audio,具体参数解析,可以参考excel文档中的color hashtable
函数有以下几个:
1)ColorFrom(GameObject target, Hashtable args)
ColorFrom(GameObject target, Color color, float time)
2)ColorTo(GameObject target, Hashtable args)
ColorTo(GameObject target, Color color, float time)
3)ColorUpdate(GameObject target, Color color, float time)
ColorUpdate(GameObject target, Hashtable args)
在这里会引入一个比较特别的新的参数,NamedValueColor,这是一个枚举变量,有一下几个值:_Color,_SpecColor,_Emission,_ReflectColor具体意义可以参考EXCEL 文件
4.&&&&&&&Draw(画线)的几个函数区别
DrawLine(Vector3[] path)
DrawLine(Vector3[] path, Color color)
DrawLine(Transform[] path)
DrawLine(Transform[] path,Color color)
DrawLineGizmos
DrawLineHandles
DrawPathGizmos
DrawPathHandles
PathLength&&&&&&&&&&&& //返回路径长度
这些函数必须放在OnDrawGizmos()里面使用。OnDrawGizmos()和Start()一样直接放在脚本类内部的最外层。DrawPath的效果是在编辑器内部可以看到,但是运行时没有的
每个函数的参数和DrawLine()一样,就不一一列举了。
其中DrawLine是画直线而DrawPath是画曲线路径,也是物体移动的实际路径。
函数以Gizmos结尾的和没有的效果一样,而以Handles结尾的暂时有一个不兼容的问题,不能用,这样算下来,这几个函数里面有用的也就三个:
DrawLine()
DrawPath()
PathLength()
在这里还有一个函数,用于给你的路径上的画一个线圈,方便观察
Gizmos.DrawWireSphere(Vector3 position,float radius);&&& //参数一为位置,参数二为半径
效果如图:
5.&&&&&&&物体渐隐(FadeTo,FadeFrom,FadeUpdate)
主要是对物体的alpha通道值进行改变,使物体逐渐透明。
这里要注意的是,需要改了shader参数,这个效果才会生效。首先你给物体添加一个Material后,选中物体,查看inspector视图,在Material处你会看到一个shader选项,点击选择transparant-&Diffuse
6.&&&&&&&物体朝向(LookFrom,LookTo,LookUpdate)
1)LookFrom(GameObject target, Vector3 looktargetposition, float time)
LookFrom(GameObject target, Hashtable args)
2)LookTo(GameObject target, Vector3 looktargetposition, float time)
LookTo(GameObject target, Hashtable args)
前两个函数的哈希表参数如下:
name,looktarget,axis,time,speed,delay,easetype,looptype,onstart等,具体的可以参考EXCEL文件
3)LookUpdate(GameObject target, Hashtable args)
LookUpdate(GameObject target, Vector3 looktargetposition, float time)
用于循环函数,如Update()中,使物体一直朝向looktargetposition,
7.&&&&&&&移动(Move*)
1)MoveAdd(GameObject target, Vector3 amount, float time)
MoveAdd(GameObject target, Hashtable args)
2)MoveBy(GameObject target, Vector3 amount, float time)
MoveBy(GameObject target, Hashtable args)
3)MoveFrom(GameObject target, Vector3 position, float time)
MoveFrom(GameObject target, Hashtable args)
4)MoveTo(GameObject target, Vector3 position, float time)
MoveTo(GameObject target, Hashtable args)
5)MoveUpdate(GameObject target, Vector3 position, float time)
MoveUpdate(GameObject target, Hashtable args)
这几个函数的不使用哈希表作为参数的时候没有区别,但是当引入哈希表的时候,movefrom和moveto可以根据一个vector3序列(path)进行运动,而moveadd和moveby只能点对点运动,moveby和moveadd这两个函数经过测试,我表示他们没区别,当然要是你发现他们之间的区别的时候,记得联系我告诉我哦,大家相互学习嘛。Moveupdate和其他**update原理一样,就不讲了,具体的参数也都比较好理解,哈希表参数可以参考我的EXCEL文档
Moveupdate的哈希表参数只有:
position,x,y,z,orienttopath,looktarget,looktime,axis,islocal,time
(PS:参数之间有的是不能同时为真的哦,比如orienttopath和looktarget)
8.&&&&&&&暂停itween(Pause)
当某itween被赋予“ignoreTimeScale”时,无法暂停
函数比较简单,我就直接贴在下面了:
Pause(GameObject target) //暂停gameobject上的所有itween
Pause(GameObject target, bool includechildren) //暂停gameobject上的所有itween,是否包括孩子
Pause(GameObject target, string type) //暂停gameobject上的,某个类型的所有itween
Pause(GameObject target, string type, bool includechildren) //暂停gameobject上的,某个类型的所有itween,是否包括孩子
Pause() //暂停场景中的所有itween
9.&&&&&&&Resume继续
就和上面的暂停一个样,就不详细讲了
Resume(GameObject target)
Resume(GameObject target, bool includechildren)
Resume(GameObject target, string type)
Resume(GameObject target, string type, bool includechildren)
10.&&&Stop停止
就和上面的暂停一个样,就不详细讲了
Stop(string type)
Stop(GameObject target)
Stop(GameObject target, bool includechildren)
Stop(GameObject target, string type)
Stop(GameObject target, string type, bool includechildren)
11.&&&StopByName根据名字停止
StopByName(string name)
12.&&&外力击打效果(PunchPosition,PunchRotation,PunchScale)
用于模拟物体受外力后,改变位置,旋转,大小的效果。
PunchPosition(GameObject target, Vector3 amount, float time)
PunchPosition(GameObject target, Hashtable args)
PunchRotation(GameObject target, Vector3 amount, float time)
PunchRotation(GameObject target, Hashtable args)
PunchScale(GameObject target, Vector3 amount, float time)
PunchScale(GameObject target, Hashtable args)
这几个函数没有引入新的哈希表参数,就不详细讲解了
13.&&&PutOnPath
把物体放到某路径的百分之几的位置
PutOnPath(GameObject target, Vector3[] path, float percent)
PutOnPath(GameObject target, Transform[] path, float percent)
PutOnPath(Transform target, Vector3[] path, float percent)
PutOnPath(Transform target, Transform[] path, float percent)
14.&&&PointOnPath
返回一个在路径上百分之几的位置的vector3& position
PointOnPath(Transform[] path, float percent)
PointOnPath(Vector3[] path, float percent)
15.&&&RectUpdade
RectUpdate(Rect currentValue, Rect targetValue, float speed) : Rect
具有返回值
这东西,暂时没搞懂怎么用,反正效果就是一个矩形,在给出的值之间不停的变换位置和大小
16.&&&旋转(Rotate**)
根据移动(Move**)的函数推理一下就懂了,相信你的能力
&&&&&&&RotateAdd(GameObject target, Vector3 amount, float time)
RotateAdd(GameObject target, Hashtable args)
RotateBy(GameObject target, Vector3 amount, float time)
RotateBy(GameObject target, Hashtable args)
RotateFrom(GameObject target, Vector3 rotation, float time)
RotateFrom(GameObject target, Hashtable args)
RotateTo(GameObject target, Vector3 rotation, float time)
RotateTo(GameObject target, Hashtable args)
RotateUpdate(GameObject target, Hashtable args)
RotateUpdate(GameObject target, Vector3 rotation, float time)
17.&&&规模(Scale**)
根据移动(Move**)的函数推理一下就懂了,相信你的能力
ScaleAdd(GameObject target, Vector3 amount, float time)
ScaleAdd(GameObject target, Hashtable args)
ScaleBy(GameObject target, Vector3 amount, float time)
ScaleBy(GameObject target, Hashtable args)
ScaleFrom(GameObject target, Vector3 scale, float time)
ScaleFrom(GameObject target, Hashtable args)
ScaleTo(GameObject target, Vector3 scale, float time)
ScaleTo(GameObject target, Hashtable args)
ScaleUpdate(GameObject target, Vector3 scale, float time)
ScaleUpdate(GameObject target, Hashtable args)
18.&&&晃动(Shake**)
根据你给的参数进行位置旋转大小的晃动,比较特别的是,这个晃动会逐步减小归于平静。看了前面那些函数的参数作用,相信这个也不是问题了:
ShakePosition(GameObject target, Vector3 amount, float time)
ShakePosition(GameObject target, Hashtable args)
ShakeRotation(GameObject target, Vector3 amount, float time)
ShakeRotation(GameObject target, Hashtable args)
ShakeScale(GameObject target, Vector3 amount, float time)
ShakeScale(GameObject target, Hashtable args)&
原文链接:&
版权所有:&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:315229次
积分:3548
积分:3548
排名:第9297名
转载:224篇
(2)(1)(1)(19)(8)(3)(12)(8)(18)(4)(8)(14)(35)(18)(23)(30)(26)unity3d iTween教程(5)
动画插件iTween-路径动画的制作& &iTween是一个动画库,
用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上
色,控制音频等等 到官网看看 。作为开源的iTween,另一个NB的程序员在其基础之
上制作了一个很好的工具,iTween Visual Edito,同时它的安装也不会那么麻烦。 &我今天主要是说一下用iTween来制作一段路径动画的
方法和步骤。首先我们下载iTween插件并安装,官方商店就有,免费的。& &安装方法很简单,可以再Project视图中
单击鼠标右键,选择ImportPackage-&CustomPackage找到下载插件的文件夹,导入插件即
可。& &也可以直接将插件
拷贝到工程文件中的Assets文件夹中,回到unity3d中双击iTween Visual Editor文件即可导入插件。插件导入成功后,即可在菜单栏中的Component中多出了一个iTween
选项,并且在Component-&Scripts中多出了三个选项,这些都是我们马上要用到的。&好了,准备工作已做完,下面开始制作我们的
路径动画了。首先制作一个简单的场景。然后创建一个简单的场景,命名为path,制作路径。选择我们新建的path然后在Component-&Scripts中选择ITween Pcth,&添加完成后即可在Inspector视图中看到我们添加的ITween
Pcth属性&Path
Name是路径的名称。我们命名为first path。Path Color为路径线的颜色。将他改成红色。一遍可以清晰的看到他。
Node Count为路径的关键点数量,下面Node为每个关键点坐标。我们将Node Count的值改为6,然后设置关键点的
坐标。方法1:直接改变Node下的想,x,y,z的值。防范2:在Scene视图中直接拖动每个点的坐标。制作好后的结果
如图:到这里路径已经制作好了,下面将一下怎么把这条路径和我们的运动物体连接起来呢。首先我们建立一个CUBE作为要
运动的物体命名为player。选择我们新建的player然后点击菜单栏的Component-&iTween-&iTweenEvent.添加完成后在
Inspector视图中看到iTweenEvent属性。属性非常多。下面介绍几个长影
属性。Name:为动画时间的名称。命名为MyFirstEventShow Icon In Scene: 是否在场景中显示图标,勾选改选项。
Play Automatically:是否在运行是自动播放,勾选改选项。Event Type下拉框选择MoveTo,Path 勾选选择Path-〉firstpath,在往下勾选
Time,时间设置为30;勾选easetype设置为linear设置为匀速;设置好之后如图:好了可以运行游戏了。发现盒子
沿着我们设置的路径开始运动了。(住:因为参数太多。还没有完全研究,希望大家一起研究学习,有不对的地方还
望高手指教)这个就写这么多了。关于动态调用,和几个路径相互切换下次再讲吧。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:107691次
积分:1582
积分:1582
排名:千里之外
原创:40篇
转载:48篇
评论:21条
(1)(3)(1)(3)(1)(2)(24)(4)(14)(1)(7)(11)(15)(8)ITween(5)
iTween它由一个c#文件组成,支持Unity所有版本以及不管你用什么编程语言都可以使用它,如果你是用Js,你要将它放在Plugins文件夹里;如果是c#,放在项目的Assets里的任意目录即可。
下面了解一下iTween的基础知识。iTween的所有方法都有2种方式,一种简单的(simple),一种定制的复杂(customizable)的。
在复杂定制方式里可以设置iTween所有属性方法。iTween里的方法几乎都需要赋予一个GameObject,为了获取更大的性能,只有一些特定的
函数可以在Update方法中重复调用。&
iTween可以做很多事情。我们先从简单的学起,先控制一个物体从一个位置移动到另一个地方,这里用到MoveTo()方法。让它两秒后移动到(2,0,0)位置上:&
iTween.MoveTo(gameObject, Vector3(2,0,0),
上面是不是很简单?我们如果需要对这个动画进行更多的控制,我们需要用"customizable"模式,像下面这样写:&
iTween.MoveTo(gameObject, {“x”:2, “time”:3, “loopType”:”pingPong”,
“delay”:1));&
上面的意思就是三秒的时间将物体运动到x坐标为2的位置,运动的类型为"pingPong",延时1秒执行这个运动。&
如果想完全了解iTween所有方法,请查看完整的描述文档(强烈推荐,胜过任何教程):&
/documentation.php
有很多参数更你设置,在C#中。你可能要这样写才可以:
Hashtable parameters = new Hashtable();
parameters.Add("x",2);
parameters.Add("time",3);
parameters.Add("looptype",iTween。LoopType。pingPong);
parameters.Add("delay",1);
iTween.MoveTo(gameObject, parameters);&
在Js中只要一行代码到C#中变成了六行,有点违背了最小投入最大产出的中心思想,但是,不要怕,iTween有一个解决方案,让C#中也可以像JavaScript那样简洁。&
iTween里的hash()方法就可以做到,看下面修改后的代码:&
iTween.MoveTo(gameObject,
iTween。Hash(“x”,2,“time”,3,“loopType”,”pingPong”,“delay”,1));&
以下是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()方法中调用,提供时刻改变属性值的环境。不局限于
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。)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:190889次
积分:3400
积分:3400
排名:第9896名
原创:146篇
转载:40篇
评论:29条
(1)(3)(1)(1)(1)(1)(2)(14)(11)(14)(10)(4)(1)(4)(1)(1)(5)(3)(2)(6)(2)(4)(13)(6)(8)(6)(2)(18)(41)Unity3D(39)
iTween这个类库它主要的功能就是处理模型从起始点到结束点之间运动的轨迹。(移动,旋转,音频,路径,摄像机等)它是一个开源的项目并且完全免费,它们的官网在这里&&打开网之后点击右上角Get
iTween图标即可,或者在AssetStores商店中直接下载。&我把iTween的源码仔细读了一遍,我感觉与其说它是处理动画的类,不如说它是处理数学的类。本文的最后,我会像大家总结,请仔细阅读。
移动模型时候用到的几个核心方法如下:
iTween.MoveTo(): 让模型移动到一个位置,它的底层函数是通过动态的修改模型每一帧的transform.position完成的,所以它会百分之百到达目标点,不会出现误差。
iTween.MoveFrom():它和上面的一样,iTween.MoveTo()是将模型移动到目标位置,而iTween.MoveFrom()是将模型从目标位置移动到原始位置。
iTween.MoveAdd() 和iTween.MoveBy()底层实现一样,大家可以去看源码。处理移动时采用的是transform.Translate也就是API的平移,这样在处理移动的时候可能会出现一些误差,但是效果好点。
iTween.MoveUpdate():和iTween.MoveTo()差不多,只是它需要放在循环或者Update()中。
有了核心的移动方法后,我们就来了解iTween强大的核心参数,与事件。移动方法的参数都差不多,所以这里我就以MoveTo来做例子。直接上代码。
Move.cs绑定在需要移动的游戏对象身上。
UnityEngine;
System.Collections;
MonoBehaviour
//键值对儿的形式保存iTween所用到的参数
Hashtable();
//这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中
//例如移动的特效,先震动在移动、先后退在移动、先加速在变速、等等
args.Add(&easeType&,
iTween.EaseType.easeInOutExpo);
//移动的速度,
args.Add(&speed&,10f);
//移动的整体时间。如果与speed共存那么优先speed
args.Add(&time&,1f);
//这个是处理颜色的。可以看源码的那个枚举。
args.Add(&NamedValueColor&,&_SpecColor&);
//延迟执行时间
args.Add(&delay&,
//移动的过程中面朝一个点
args.Add(&looktarget&,Vector3.zero);
//三个循环类型
none loop pingPong (一般 循环 来回)
//args.Add(&loopType&,
//args.Add(&loopType&,
args.Add(&loopType&,
&pingPong&);
//处理移动过程中的事件。
//开始发生移动时调用AnimationStart方法,5.0表示它的参数
args.Add(&onstart&,
&AnimationStart&);
args.Add(&onstartparams&,
//设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受,
//那么就得在接收对象的脚本中实现AnimationStart方法。
args.Add(&onstarttarget&,
gameObject);
//移动结束时调用,参数和上面类似
args.Add(&oncomplete&,
&AnimationEnd&);
args.Add(&oncompleteparams&,
args.Add(&oncompletetarget&,
gameObject);
//移动中调用,参数和上面类似
args.Add(&onupdate&,
&AnimationUpdate&);
args.Add(&onupdatetarget&,
gameObject);
args.Add(&onupdateparams&,
x y z 标示移动的位置。
args.Add(&x&,5);
args.Add(&y&,5);
args.Add(&z&,1);
//当然也可以写Vector3
//args.Add(&position&,Vectoe3.zero);
//最终让改对象开始移动
iTween.MoveTo(gameObject,args);
&&&&//对象移动中调用
AnimationUpdate(bool
Debug.Log(&update
//对象开始移动时调用
AnimationStart(float
Debug.Log(&start
//对象移动时调用
AnimationEnd(string
Debug.Log(&end
在看看iTween中的寻路算法,其实非常非常的简单,我们几乎不用做任何事情。如下图所示,我们能清楚的看到编辑了一个简单的寻路,我们通过iTween 来实现小人跑步到终点。
Path.cs &绑在主角身上即可。
UnityEngine;
System.Collections;
MonoBehaviour
//路径寻路中的所有点
Hashtable();
&&&&//设置路径的点
args.Add(&path&,paths);
//设置类型为线性,线性效果会好一些。
args.Add(&easeType&,
iTween.EaseType.linear);
//设置寻路的速度
args.Add(&speed&,10f);
//是否先从原始位置走到路径中第一个点的位置
args.Add(&movetopath&,true);
//是否让模型始终面朝当面目标的方向,拐弯的地方会自动旋转模型
//如果你发现你的模型在寻路的时候始终都是一个方向那么一定要打开这个
args.Add(&orienttopath&,true);
&&&&//让模型开始寻路
iTween.MoveTo(gameObject,args);
OnDrawGizmos()
//在scene视图中绘制出路径与线
iTween.DrawLine(paths,Color.yellow);
iTween.DrawPath(paths,Color.red);
运行后即可看到主角自动寻路的效果。
如果你仔细阅读到这里你可能会想到,iTween做的东西有点像&Mathf.Lerp() Vector3.Lerp() lookAt()等等这类的方法。假设不使用iTween这个类就用源生的API其实也可以实现上述的所有效果。只有iTween帮我们封装的更好一些,平滑过渡的效果更好一些,而且还能增加一些特效。只是这些特效与动画全都是iTween通过数学的方法计算出来。因为底层它们使用的也是简单的
移动旋转API中的方法。我觉得寻路的话可以使用Unity自带的方法(因为是官方提供的),处理一些简单的动画使用iTween还是挺不错的,因为更加形象。
==================================================
有很多参数更你设置,在C#中.你可能要这样写才可以:
Hashtable parameters = new Hashtable();
parameters.Add(&x&,2);
parameters.Add(&time&,3);
parameters.Add(&looptype&,iTween.LoopType.pingPong);
parameters.Add(&delay&,1);
iTween.MoveTo(gameObject, parameters);
iTween.MoveTo(gameObject, iTween.Hash(“x”,2,“time”,3,“loopType”,”pingPong”,“delay”,1));
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:22653次
排名:千里之外
转载:40篇
(2)(2)(1)(2)(1)(17)(18)

我要回帖

更多关于 路由器穿墙不好怎么办 的文章

 

随机推荐