Jump to content
Unity Insider Forum

2D Animation, gleiche Animation für verschiedene Sprites


Recommended Posts

Hallo,

 

ich habe folgendes Problem:

Ich hab mehrere Spritesheets mit Sprites (2 Geschlechter in 3 Hautfarben). Die Sheets sind alle genau

gleich aufgebaut (Sprites immer gleich groß, und an jeder Position im Sheet befindet sich im Prinzip der gleiche Animationsframe).

 

Gibt es eine Möglichkeit bei einer Animation jetzt einfach das Spritesheet auszutauschen oder muss ich

jetzt wirklich 6 mal alles animieren?

 

Gruß,

Lehran

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit etwas Glück könnte das mit Editor-Scripting gehen, wenn die Sprites sich an eine sinnvolle Namenskonvention halten. Ich hab nur gerade nicht im Kopf, wie gut man die Animationen über APIs ansprechen kann - aber einen Versuch wäre es wert (also erstmal ein Blick in die Scripting API um zu sehen, ob das überhaupt geht).

 

Was du - falls die Sprites innerhalb der Spirtesheets die exakt gleichen Namen haben - auch probieren könntest ist, ob es auch so geht (teilweise verwendet Unity bei Animationen die Namen, um auf die Objekte zu kommen und mir sind schon Sprite-Animationen kaputt gegangen, weil ich die Sprite-Namen geändert habe).

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Naja, die Animation speichert von Transform-Komponenten Positionen und Rotationen. Die Sprites auf den Renderern auszutauschen sollte also nicht das Problem sein. Ich würde ein ScriptableObject machen (manchmal frage ich mich, ob ich schon jemanden damit nerve :)), das etwa so aussieht:

public class BodyInfo : ScriptableObject
{
 public Sprite head;
 public Sprite torso;
 //...
}

Mehr zu ScriptableObjects

 

Ein MonoBehaviour wie dieses könnte dann das Einsetzen der Sprites übernehmen:

public class BodyApplier : MonoBehaviour
{
 [serializeField]
 private SpriteRenderer head;
 [serializeField]
 private SpriteRenderer torso;
 //...

 public void Apply(BodyInfo body)
 {
   head.sprite = body.head;
   torso.sprite = body.torso;
   //...
 }
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...