2016-07-19 5 views
1

animieren Ich fange an Einheit vor nicht allzu langer Zeit zu lernen. Gerade jetzt, ich habe ein Problem mit dealing Karten Animation und zeigen Sie es an die Spieler,Wie animiere ich Karten von Deck in Unity

wie folgt aussieht:

animation

Ich weiß nicht, um den Algorithmus zu machen. Ich habe versucht zu suchen, fand aber keine Lösung. Ich denke darüber nach, eine Datei wie auf dem Bild zu flashen, um sie zu laden, wenn das Spiel startet (sehr dumm ...).

Ich brauche etwas Hilfe. Wenn du kannst, gib mir bitte eine Lösung!

Vielen Dank.

+2

Für den größten Teil scheint es nur um die Karten zu tweenen zwischen ihre Ausgangsposition in der Mitte und ihre endgültige Position auf dem Tisch, plus eine Art am Ende, die auch nicht viel mehr als ein Tween ist. – Bart

+0

@Bart Ich habe [iTween] (http://itween.pixelplacement.com/index.php), um beim Kartenspielen animieren zu können. Aber mit Karten habe ich keine Lösung :) –

+1

Ich bin nicht viel von einem Kartenspieler, also was ist der Unterschied? Die Art und Weise, wie ich mich dieser Animation annähere, besteht darin, die Karten (die ihren Rücken zeigen) einfach in ihre Positionen zu tweenen. Und für die untere Reihe, tauschen Sie sie mit der tatsächlichen offenen Karte, wenn der Tween abgeschlossen ist. – Bart

Antwort

0

Anstatt eine Animation zu verwenden, ist es besser, die instanziierte Kartenposition an die endgültige Position zu bringen. Sie können eine Liste festlegen, um zu überprüfen, ob sich an dieser Position eine Karte befindet. Wenn ja, verschieben Sie die nächste Karte zur nächsten Position. Sobald die Rückseite der Karte diese Position erreicht, entferne die Rückseite des Kartengegenstandes und lege die tatsächliche Karte in die Position, auf die sich die Rückseite der Karte bewegt. Sie können diese Positionen dann verwenden, wenn ein Spieler eine Karte bewegt, kann er einrasten und die andere Kartenposition bewegen.

1

@Bart Ich habe versucht und einige Ergebnisse haben :)

Mein Code

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); 
     } 
    } 

Und Vorschau

enter image description here

+0

Sieht gut aus für mich :) – Bart

Verwandte Themen