Itween 贝塞尔曲线(一)

时间:2022-01-26 17:43:26


原地址: 点击打开链接

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个这些定点的控制点





* 本文来自:Unity3D 教程手册

* 本文链接:http://www.unitymanual.com/3718.html