2016-07-19 8 views
1

私はまもなくユニティを学び始めています。ユニティでデッキのカードをアニメートする方法

がどのように見える今、私は、カードのアニメーションを扱うの問題を有し、かつプレイヤーにそれを表示しています:

animation

私はそれを作るためのアルゴリズムを知りません。私は検索を試みましたが、解決策は見つかりませんでした。私は、ゲームの開始時にロードする画像のようなファイルフラッシュを作成することを考えています(非常にばかげた...)。

私は助けが必要です。できるなら、私に解決策を教えてください!

ありがとうございました。

+2

:)いくつかの結果を試してみて、持っていました中央の最初の位置とテーブルの最終的な位置に加えて、最後に並べ替えがあります。これはトゥイーン以上のものでもありません。 – Bart

+0

@Bartカードをプレイするときにアニメーションを作るには[iTween](http://itween.pixelplacement.com/index.php)があります。しかしカードを扱うと解決策はありません:) –

+1

私はカードプレーヤーではないので、違いは何ですか?私がこのアニメーションにアプローチする方法は、カードを裏返しにしてカードの位置に合わせるだけです。一番下の行は、トゥイーンが完了したときに、実際の表向きのカードと交換してください。 – Bart

答えて

0

アニメーションを使用する代わりに、インスタンス化されたカードの位置を最終位置に移動する方がよい場合があります。次のカードを次の位置に移動する場合は、その位置にカードがあるかどうかをチェックするためにリストを設定することができます。カードの裏面がその位置に達すると、カードの裏面を取り外して、カードの裏面が移動していた位置に実際のカードを置きます。これらの位置を使用すると、プレイヤーがカードを移動すると、他のカード位置をスナップして移動することができます。

1

@Bart私はほとんどの部分については、それだけの間でカードをトゥイーンようだ

私のコード

IEnumerator InitCardWithAnimation(GameObject[] arrayCards) 
    { 
     SortCards sort = new SortCards(); 
     arrayCards = sort.SortCard(arrayCards); ; 
     Camera cam = Camera.main; 
     float height = 2f * cam.orthographicSize; 
     float widthCard = arrayCards[0].GetComponent<Renderer>().bounds.size.x; 
     float x = -6 * (widthCard/3); 
     int layer = 1; 
     float z = 13; 
     foreach (GameObject item in arrayCards) 
     { 


      GameObject rocketClone = (GameObject)Instantiate(item, new Vector3(0, 0, z), transform.rotation); 

      iTween.MoveTo(rocketClone, new Vector3(x, -height/3, z), 1.5f); 
      yield return rocketClone; 
      yield return new WaitForSeconds(0.3f); 

      x += (widthCard/3); 
      //increase ordermin layer 
      rocketClone.GetComponent<SpriteRenderer>().sortingOrder += layer; 
      layer++; 
      z--; 
      arrCard.Add(rocketClone); 
     } 
    } 

とプレビュー

enter image description here

+0

私によく見る:) – Bart

関連する問題