Lehran Geschrieben 30. März 2015 Melden Share Geschrieben 30. März 2015 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jashan Geschrieben 30. März 2015 Melden Share Geschrieben 30. März 2015 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). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 24. Mai 2015 Melden Share Geschrieben 24. Mai 2015 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; //... } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.