原地址:
点击打开链接
1.回调函数
回调函数,即当动画完成时那瞬间需要执行一次的一个函数,it中默认有一个onComplete函数,当动画完成时会自动执行,且你可以提供需要传递的一些参数。见如下代码:
- private var tweenTarget : GameObject;
- var counter : GUIText;
- var count : int =0;
-
- function Start(){
- tweenTarget=gameObject;
- roll("right");//开始执行
- counter.guiText.material.color = Color.black;
- }
-
- private function roll(direction: String): void{
- switch(direction){
- //如果向右移
- case "right":
- iTween.rotateBy(tweenTarget,{"z":-.5});//旋转
- iTween.moveTo(tweenTarget,{"x":1.7, "onComplete":"roll","onCompleteParams":"left"});//移动到 当完成动画时执行onComplete 并且传递一个参数left
- //也即相当于又这样调用了一次roll("left"); 可以推测到 当动画完成向右之后 又开始向左了
- count+=1;
- break;
-
- //如果向左移 同上 当完成向左动画 则又开始向右 如此实现"乒乓"效果
- case "left":
- iTween.rotateBy(tweenTarget,{"z":1});
- iTween.moveTo(tweenTarget,{"x":-1.7, "onComplete":"roll","onCompleteParams":"right"});
- count+=1;
- break;
- }
-
- counter.text=count.ToString() + " Loops";
- }
复制代码
2.Bezier贝塞尔曲线运动
除了普通的线性运动 如MoveTo这些函数 it也支持曲线运动 其中一种常用的曲线就是bezier
在it中如何使用曲线:
- function Start()
- {
- iTween.moveToBezier(gameObject,{"time":3, "transition":"easeInOutQuint","bezier":[Vector3(0,1.5,0), Vector3(0,0,1.5), Vector3(0,-1.5,3), Vector3(1.5,0,3),Vector3(1.5,0,0), Vector3(-1.5,0,0)]});
- }
复制代码
可以看到,让物体跟随曲线运动。第一个参数指定当前物体运动,接下来是过渡方式:easeInOut 是一种起点和终点平滑过渡的方式。
共指定了6个向量点,需要记住参数是成双的即每个定点需要匹配一个控制点,才能定义好这条曲线。上面共有3个顶点,加3个这些定点的控制点。
* 本文来自:Unity3D 教程手册
* 本文链接:http://www.unitymanual.com/3718.html