2014-12-22 390 views
0

在實例化按鈕並將它們添加到場景中時,我需要執行某種動畫,以便它們通過幻燈片添加到場景中向下動畫(或向左滑動或向右滑動)。 到目前爲止我的代碼:unity3d v4.6中的動畫按鈕(向左滑動,向右滑動,向下滑動)

for (int i = 0; i < 4; i++) { 
     // Instantiate 4 buttons 
     Transform clone = (Transform)Instantiate (suggestionBtn, 
               new Vector3 (4, y, 0), Quaternion.identity); 
     // make instance the child of the canvas 
     clone.SetParent(gameObject.transform, false); 
     clone.transform.rotation = transform.localRotation; 
     y -= 70; 
} 

我不知道我是否需要讓動畫文件,並將其附加到每個按鈕,我需要動畫或使用一些發動機就像LeanTween或只是幾行代碼即會確保向下滑動/向左滑動/向右滑動動畫?

+0

所有艱難的,這是一個古老而過於複雜的腳本。您可能可以從這個http://pastebin.com/18Xp09Ai獲得完整的東西。它具有4個按鈕的設置,每個按鈕都有另外4個按鈕。其中滑落,然後向後。在兩者之間也是一個不錯的選擇。 –

+0

如果您不想使用第三方資產(iTween),則可以創建自己的補間方法。看看類似的問題,看看我的答案http://stackoverflow.com/questions/27119906/animate-move-translate-tween-image-in-unity-4-6-from-c-sharp-code/27121705 #27121705 – Savlon

回答

1

您可以使用iTween做到這一點:

static float y0; 
static float FadeInOutTime = 1.0f; 

//Called in Awake() 
y0 = GameObject.Find("button_home").transform.position.y; 

public static IEnumerator AnimateIn() 
{ 
    int i = 0; 

    foreach (var item in ToolbarButtons) { 
     var pos = item.transform.position; 
     iTween.MoveTo(item, new Vector3(pos.x, y0 + 6, pos.z), FadeInOutTime); 
     yield return new WaitForSeconds (i * 0.02f); 
     i++; 
    } 
    yield return null; 
} 

enter image description here