iTween for Unity




itween

你曾經在你的游戲中制作過動畫嗎?問這個問題可能是愚蠢的,幾乎每個Game都有動畫,雖然有一些沒有,但你必須處理有動畫和沒有動畫。讓我們結識 ITween

iTween


官方網站:http://itween.pixelplacement.com

官方文檔:http://pixelplacement.com/itween/documentation.php
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));

ScaleFrom,將物體的大小從提供的值變化到原來的大小

iTween.ScaleFrom(gameObject, iTween.Hash("x", 10f);

itwee scale的示例可查看:https://qiita.com/zob_by_zooa_inc/items/0632b292515c67e80b22


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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM