1. 程式人生 > >Itween 貝塞爾曲線(一)

Itween 貝塞爾曲線(一)

原地址:點選開啟連結

1.回撥函式

回撥函式即當動畫完成時那瞬間需要執行一次的一個函式it中預設有一個onComplete函式當動畫完成時會自動執行且你可以提供需要傳遞的一些引數見如下程式碼:

  1. private var tweenTarget : GameObject;
  2. var counter : GUIText;
  3. var count : int =0;
  4. function Start(){
  5. tweenTarget=gameObject;
  6. roll("right");//開始執行
  7. counter.guiText.material.color = Color.black;
  8. }
  9. private
     function roll(directionString)void{
  10. switch(direction){
  11. //如果向右移
  12. case "right":
  13. iTween.rotateBy(tweenTarget,{"z":-.5});//旋轉
  14. iTween.moveTo(tweenTarget,{"x":1.7"onComplete":"roll","onCompleteParams":"left"});//移動到   當完成動畫時執行onComplete 並且傳遞一個引數left
  15. //也即相當於又這樣呼叫了一次roll("left")可以推測到  當動畫完成向右之後 又開始向左了
  16. count+=1
    ;
  17. break;
  18. //如果向左移   同上 當完成向左動畫 則又開始向右  如此實現"乒乓"效果
  19. case "left":
  20. iTween.rotateBy(tweenTarget,{"z":1});
  21. iTween.moveTo(tweenTarget,{"x":-1.7"onComplete":"roll","onCompleteParams":"right"});
  22. count+=1;
  23. break;
  24. }
  25. counter.text=count.ToString() + " Loops";
  26. }
複製程式碼

2.Bezier貝塞爾曲線運動

除了普通的線性運動 如MoveTo這些函式 it也支援曲線運動

  其中一種常用的曲線就是bezier

在it中如何使用曲線:

  1. function Start()
  2. {
  3. 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)]});
  4. }
複製程式碼

可以看到讓物體跟隨曲線運動第一個引數指定當前物體運動接下來是過渡方式:easeInOut 是一種起點和終點平滑過渡的方式


共指定了6個向量點需要記住引數是成雙的即每個定點需要匹配一個控制點才能定義好這條曲線上面共有3個頂點加3個這些定點的控制點