Ich arbeite in Unity und stelle fest, dass der Animator in meinem 2D-Spiel nicht für das arbeitet, was ich versuche. Ich möchte eine bestimmte Animation mithilfe von Sprite-Blättern erstellen und dieselbe Animation mit anderen Sprites wiederverwenden können, die von Zellen dieselbe Größe und gleiche Abmessungen haben. Nach einigen Recherchen finde ich, dass es unmöglich ist.
Stattdessen versuche ich, mein eigenes Animationsskript zu erstellen, aber ich verstehe nicht, wie ich Unity anweisen soll, nur einen Abschnitt des Sprites zu zeichnen. So etwas wie in XNA, wo Sie nur ein bestimmtes Rechteck eines Sprites mithilfe von Start- und Endkoordinaten rendern können.
Wie zeichne ich manuell einen Teil eines Sprite-Blatts?
Antworten:
Ich denke, es kann einen einfacheren Ansatz geben, bei dem Sie dies tun und trotzdem Unity Mecanim für die Animation verwenden können.
Schritte:-
1) Sie können dem Bild programmgesteuert 2D-Textur-Sprites zuweisen. Da es sich um ein Raster handelt, ist dies nicht sehr schwierig. In der folgenden Antwort hat der Benutzer seinen eigenen Sprite-Slicer erstellt und im Verzeichnis gespeichert (optional, sonst speichern Sie ihn einfach in einer Variablen). Sie brauchen nicht den gesamten Code, überprüfen Sie einfach die GetSprites () -Funktion und Sie werden auf die Idee kommen :)
http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html
2) Wenn Sie dazu in der Lage sind, pflegen Sie ein Array von Sprites, das Sie aus Schritt 1 erhalten haben.
3) Jetzt müssen Sie eine Animationsdatei dieser Sprites erstellen, die in mecanim eingesteckt werden kann. Dazu benötigen Sie die Funktion "Kurve festlegen" von Unity (überprüfen Sie den unten angegebenen Link). Sobald Sie den Clip haben, können Sie ihn für die zukünftige Verwendung speichern oder nur in einer Variablen für die aktuelle Spielinstanz speichern.
http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
Hoffe das löst deinen Zweifel :)
quelle