您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    iTween动画设计包的使用
    时间:2015-04-08 10:01 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    iTween动画设计包的使用


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


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。