Jump to content
Unity Insider Forum

Sprites dynamisch laden


GaRv3

Recommended Posts

Hallo zusammen,

ich habe in einem aktuellen Projekt sehr, sehr viele Sprite-Animationen.
Ich weiß im Voraus (beim starten eines Levels) in etwa, welche Animationen und Sprites ich benötige.

Nun würde ich die Sprites für die entsprechenden Animationen gern dynamisch laden. Also alle, von denen ich sicher weiß, dass ich sie brauche, direkt zu Beginn des Levels und alle, die ggf. später im Level auftauchen, über einige Sekunden hinweg.

Die Animationen sind nicht fest einzelnen Game Objects in Szenen zugewiesen. Die Objekte werden dynamisch aus Prefabs erstellt und die Sprites und Animationen dann zugewiesen.
Da ich die ganzen Assets nicht nativ im Dateisystem haben möchte, liegen sie nicht im Resources-Folder. Stattdessen werden alle Sprites, im Pre-Build einem Objekt der Level-Szene als Referenzen zugewiesen, wodurch sie in den Build eingeschlossen werden.

Das Problem ist jetzt natürlich, dass alles Sprites für jeden Level immer geladen werden. Die Alternativen, die ich derzeit sehe, sind:
1) Die Sprites in den Resources-Folder legen - Das will ich eigentlich wirklich nicht, weil sie dann als Bilder im Projektordner liegen.
2) Die Sprites für Animationen nicht direkt referenzieren, sondern nur die Animationen - Dadurch würden die Animationen beim ersten Aufruf aber ggf. stark ruckeln, da die Sprites erst geladen werden, wenn die Animation geladen und gestartet wurde.

Gibt es nicht eine Möglichkeit, Animationen in eine Art Asset Bundle zu packen, das man dann bei Bedarf laden kann? Eventuell auch als Adressable Assets?

Wie geht man hier am geschicktesten vor?

Danke schonmal im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

vor einer Stunde schrieb GaRv3:

Da ich die ganzen Assets nicht nativ im Dateisystem haben möchte, liegen sie nicht im Resources-Folder.

vor einer Stunde schrieb GaRv3:

1) Die Sprites in den Resources-Folder legen - Das will ich eigentlich wirklich nicht, weil sie dann als Bilder im Projektordner liegen.

Wie kommst du darauf, dass Resources-Assets nativ dem Build beigelegt werden? Die werden in .assets-Dateien gepackt wie alle anderen auch. Ich glaube, du verwechselst das mit StreamingAssets.

grafik.png

vor einer Stunde schrieb GaRv3:

2) Die Sprites für Animationen nicht direkt referenzieren, sondern nur die Animationen

Eigentlich dürfte Unity die rekursiv laden. Lädst du ein Objekt, das Sprites referenziert, werden auch die Sprites direkt mitgeladen. Glaube ich. Hab's jetzt aber nicht nochmal getestet.

vor einer Stunde schrieb GaRv3:

Gibt es nicht eine Möglichkeit, Animationen in eine Art Asset Bundle zu packen, das man dann bei Bedarf laden kann? Eventuell auch als Adressable Assets?

Addressables sind nur Asset Bundles mit Schleifchen drum. Aber ja, genau dafür sind die Dinger da; dass du sie zu beliebigen Zeitpunkten (und von beliebigen Orten) selber laden kannst.

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...