Itween 貝塞爾曲線(一)
阿新 • • 發佈:2019-01-24
原地址:點選開啟連結
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
-
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個這些定點的控制點。