2016-05-31 9 views
0

私は自分のゲームのカウントダウンタイマーを作っています。スプライトをアニメーション化する必要があります: "3"、 "2"、 "1"、 "Go!"私はそのアニメーションをどうやって行うのか正確に知っているので、それは私の問題ではありません。私の問題は、Unityが4つのスプライトをすべて選択してアニメーション化させないのはなぜですか? Screenshot 1私のスプライトにアニメーションを使用させるユニティはなぜですか?

Screenshot 2

あなたはより多くの情報や別の画像が必要な場合は、ちょうど私に知らせてください。ありがとうございました! :)

+1

あなたはユニティでタイマーのための呼び出しを使用します。 – Fattie

+0

4つのサブ画像間を遷移する1つのアニメーションを作成しようとしていますか? – LeftRight92

+0

ねえ、私はそれを考え出した。これは私の愚かさでした。あなたの返信をありがとう、私はあなたのコメントをupvoteします@JoeBlow –

答えて

0

スプライトをアニメーション化しないで、スプライトを使用してコンポーネント(SpriteRenderer)をアニメートします。スプライトは特別な属性を持つテクスチャなので、特別に考慮されます。

テクスチャをアニメーション化しないでください。単なるイメージです。アニメーションの効果を作り出すためにスワップするテクスチャのセットがあります。

3-2-1-Goをアニメーション化するには、まずSprite gameObjectを作成してからスプライトテクスチャを割り当て、次にAnimatorクリップとAnimationクリップを作成する必要があります。

あなたのアニメーションは特定の時間に、おそらくアニメーションイベントで現在のテクスチャをスワップします。

実際には、スクリプトでそれを行うことが容易であるかもしれない:

// Drag sprites, make sure they are in order (3->2->1->Go) 
public Sprite[] sprites; 
public SpriteRenderer sp; 
int index = 0; 

void Start() 
{ 
    // Check your sprites and sp 
    InvokeRepeating("SwapSprite", 1.0f,1.0f); // Start timer to swap each second 
    sp.sprite = sprites[index]; // Set initial sprite 
} 

private void SwapSprite() 
{ 
    if(++index == sprites.Length) // Increase the index and check we run out of sprites 
    { 
     CancelInvoke(); 
     sp.enabled = false; // Remove the counter 
     this.enabled = false; // That scripts is no more useful (could be destroyed) 
     return; 
    } 
    sp.sprite = sprites[index]; // Set new sprite 
} 
+0

私はちょうどそれを考え出し、私の問題は、今日完全に間違っていると思っていた!スプライトをクリックしてアニメートする代わりに、UIイメージをクリックする必要があります。私はそれを理解しようと何時間も費やし、すべての後にとても簡単でした! UGHH!しかし、あなたの答えに感謝します。あなたはあなたが何を話しているかを知っているので、あなたは応答する時間がかかったので、それを正しいものとしてマークします。ありがとうございました:) –

+0

そして、私はそのスクリプトを保存し、将来の必要性の場合に備えましょう! @Evert –

関連する問題