zoukankan      html  css  js  c++  java
  • 【转】iTween for Unity

    http://www.cnblogs.com/zhaoqingqing/p/3833321.html?utm_source=tuicool&utm_medium=referral

    itween

    你曾经在你的游戏中制作过动画吗?问这个问题可能是愚蠢的,几乎每个Game都有动画,虽然有一些没有,但你必须处理有动画和没有动画。让我们结识 ITween

    iTween


    官方网站:http://itween.pixelplacement.com
    ITween只有一个文件,它提供了多种方法。它们可以被用来不仅在场景动画的对象,同时也改变自己的颜色,大小,位置,方向, 让我们尝试模拟一个很小的范围内进行我们的测试。

    首先连接ITween的Asset Storehttps://www.assetstore.unity3d.com/en/#!/content/84

    在Unity中,我们应该看到像这样: 用以下内容创建一个新的阶段: Cube-这是我们将要进行动画处理的对象。

    iTween导入Unity

    image image

    Tween示例

        void Start()
        {
            iTween.RotateFrom(gameObject, iTween.Hash("y", 90.0f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo));
            iTween.MoveFrom(gameObject, iTween.Hash("y", 3.5f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo));
            iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 2.0f));
            iTween.ColorTo(gameObject, iTween.Hash("r", 1.0f, "g", 0.5f, "b", 0.4f, "delay", 1.5f, "time", 0.3f));
            iTween.ScaleTo(gameObject, iTween.Hash("y", 1.75f, "delay", 2.8f, "time", 2.0f));
            iTween.RotateBy(gameObject, iTween.Hash("x", 0.5f, "delay", 4.4f));
            iTween.MoveTo(gameObject, iTween.Hash("y", 1.5f, "delay", 5.8f));
            iTween.MoveTo(gameObject, iTween.Hash("y", 0.5f, "delay", 7.0f, "easetype", iTween.EaseType.easeInExpo));
            iTween.ScaleTo(gameObject, iTween.Hash("y", 1.0f, "delay", 7.0f));
            iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 8.0f));
            iTween.ColorTo(gameObject, iTween.Hash("r", 0.165f, "g", 0.498f, "b", 0.729f, "delay", 8.5f, "time", 0.5f));
    
            iTween.CameraFadeAdd();
            iTween.CameraFadeTo(iTween.Hash("amount", 1.0f, "time", 2.0f, "delay", 10.0f));
        }

    Tween效果

    itween-1gif

    脚本分析

    运行并查看结果。还不错,不是吗? 让我们一行一行来分析脚本。

    RotateFrom

    iTween.RotateFrom(gameObject, iTween.Hash("y", 90.0f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo));

    方法RotateFrom用来旋转一个对象。不像RotateToRotateByRotateFrom用于初始化指定角度的旋转和旋转到其原始状态。方法,最喜欢的人,有过载。您可以使用一个或长或短的版本:

    RotateFrom(GameObject target, Vector3 rotation, float time);
        RotateFrom(GameObject target, Hashtable args);

     iTween.Hash

    我们通过游戏对象 -对象,它是当前脚本。为了不写类似:
    Hashtable args = new Hashtable();
       args.Add(“y”, 90.0f);
       args.Add(“time”, 2.0f);
       args.Add(“easetype”, iTween.EaseType.easeInExpo);
     
    我们使用iTween.Hash - Express版本的Hashtable。正如我们的参数Y = 90.0f,它是等价的(如果x和z的值,当然为零,)
    Quaternion.Euler( new Vector3(0f, 90.0f, 0f) )

    Tween曲线

    转错了要开始我们旋转 time=2.0f

    时间必须在动画度过的。还有名为“类似的说法速度 “,在他的案件是不是指定的时间,并在该动画将运行速度。最后一个参数,我们指出,easetype = iTween.EaseType.easeInExpo。easetype该波形,其用于内插。这里是曲线的图形表示: 尝试实验,如果你不明白它是如何工作的。

    easeType

    MoveFrom

    MoveFrom类似于以前,应该简单地理解用来代替旋转运动。

    iTween.MoveFrom(gameObject, iTween.Hash("y", 3.5f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo)); 
     

    ShakePosition

    ShakePosition用在这种情况下,以贯彻落实“惊天”的相机。此方法将导致通过降低幅度移动的对象,不使用插值,对象将在他指定的部分出现在随机点。有一种所谓“新说法延迟 “,这是很重要的动画选项用于指定秒的动画之前必须经过数。

    iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 2.0f));

    ColorTo

    ColorTo顺利改变物体的颜色随着时间的推移。

    iTween.ColorTo(gameObject, iTween.Hash("r", 1.0f, "g", 0.5f, "b", 0.4f, "delay", 1.5f, "time", 0.3f));

    ScaleTo

    ScaleTo,从方法的名称作为看出,改变对象的大小。

    iTween.ScaleTo(gameObject, iTween.Hash("y", 1.75f, "delay", 2.8f, "time", 2.0f));

    RotateBy

    RotateBy提醒RotateFrom,有必要在那些需要部署超过360度(尽管,在这种情况下,可以通过进行分配情况RotateTo)。假设我们已经指定Z = 2.0F,那岂不是对象应转了两圈绕Z轴的一段时间。

    iTween.RotateBy(gameObject, iTween.Hash("x", 0.5f, "delay", 4.4f));

    MOVETO

    MOVETO,或许,整个类的main方法的ITween。他移动的对象在规定的时间指定的坐标。插值是根据所有相同的easetype,你已经知道了。 以下新方法:

    iTween.MoveTo(gameObject, iTween.Hash("y", 1.5f, "delay", 5.8f)); iTween.MoveTo(gameObject, iTween.Hash("y", 0.5f, "delay", 7.0f, "easetype", iTween.EaseType.easeInExpo));

    CameraFadeAdd

    CameraFadeAdd创建一个用于模拟停电一个新的对象。深度变化从当前值到指定的参数。以下过载:

    iTween.CameraFadeAdd(); iTween.CameraFadeTo(iTween.Hash("amount", 1.0f, "time", 2.0f, "delay", 10.0f));

    CameraFadeAdd()

    CameraFadeAdd(Texture2D texture)

    CameraFadeAdd(Texture2D texture, int depth)

    示例二

    如果没有的Texture2D,将使用黑色。 从我所没有描述,也有重要的点。例如,该参数可以指定将在事件发生时调用的方法。假设:

    public class iTweenController : MonoBehaviour
    {
        int clbkN = 0;
        GUIStyle style;
    
        void Awake()
        {
            style = new GUIStyle();
            style.fontSize = 60;
        }
    
        void Start()
        {
            iTween.MoveTo(gameObject, iTween.Hash("position", new Vector3(5.0f, 1.0f, 0.0f), "oncomplete", "myClbk",
                "loopType", iTween.LoopType.loop, "speed", 2.0f));
        }
    
        void myClbk()
        {
            clbkN++;
        }
    
        void OnGUI()
        {
            GUI.Label(new Rect(10, 10, 0, 0), "Callback # "+clbkN, style);
        }
    }

    运行结果

    其结果将是: 我注意到,新论点的方法MOVETO:

    moveTo

    position = new Vector3(5.0f, 1.0f, 0.0f)

    这是一个简短的记录,有关“X”,5.0F,“Y”,1.0F,“Z”,0.0F

    oncomplete = "myClbk"

    一旦动画(或者动画循环迭代)方法被调用具有指定名称

    loopType = iTween.LoopType.loop

    观看动画。在这种情况下,设置的正常循环,该动画将被不断地发挥,在每一个动画被移动到起始位置的起始处。 这可能是完成的。谢谢大家的关注。

    文档资料

    外文原文:http://habrahabr.ru/post/220837/ 

  • 相关阅读:
    数据类型装换
    变量及数据类型
    27 网络通信协议 udp tcp
    26 socket简单操作
    26 socket简单操作
    14 内置函数 递归 二分法查找
    15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用
    12 生成器和生成器函数以及各种推导式
    13 内置函数 匿名函数 eval,exec,compile
    10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量
  • 原文地址:https://www.cnblogs.com/mimime/p/6820736.html
Copyright © 2011-2022 走看看