Jump to content
Unity Insider Forum

Unity Inventar: jedes Gameobject in der Szene?


SimpleScript

Recommended Posts

Hey Community,

ich Frage mich seit längerem welcher der beiden nachfolgenden Ansätze der sinnvollste für ein einfaches Inventarsystem ist. Habt ihr da schon Erfahrungen?

Ansatz 1:
Alle ausrüstbaren Items liegen als Gameobjecte schon im Spieler, und werden je nach Bedarf an und ausgeschaltet.

Ansatz 2:
Alle items sind Prefabs, welche erst bei Bedarf als Gameobject instanziert werden.


Gruß Timm

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

es geht beides.

Wenn du nur ein paar Items hast (z.B. einmal alle Waffen in Doom 2016), dann kann man die gut alle auf einen Haufen packen. Wenn du aber ein RPG mit hunderten von Teilen hast, dann lädt dein Spieler-Prefab vermutlich einige Sekunden, je nach Rechner.

Wenn deine Items aber etwas komplexer sind, also einzeln schon die eine oder andere Zehntelsekunde laden, dann ist dieses Laden natürlich spürbar, wenn du ein Item das erste Mal instanziierst. Ich hab schon schlecht optimierte Spiele gespielt, wo das Spiel erstmal zwei Sekunden stehen bleibt, wenn seltener Loot gedropt wird. Nicht schön.

Leider kann Unity ja immer noch kein InstantiateAsync. Dafür braucht man Szenen , Resources oder AssetBundles. Alles nicht optimal imo. Wenn du bei einer der beiden Varianten Stottern oder lange Ladezeiten bemerkst, solltest du dir das aber mal ansehen. Wenn nicht, brauchst du dir sowieso keinen Kopf zu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 3.8.2022 um 13:22 schrieb Sascha:

Leider kann Unity ja immer noch kein InstantiateAsync.

Also beim Addressables hast du das, aber hab noch nie verwendet.

Eigentlich interessant. Ich habe tatsächlich nun die Lust bekommen, sowas zu simulieren. Man kann doch theoretisch die GameObjects nacheinander aktivieren damit es etwas "sanfter" rein lädt oder nicht? Btw reinschauen wie Addressables das macht. Wüsste nur nicht wie ich das testen könnte, ob es was bringt. Vllt 5000 cubes einbauen mit scripts oder so und gucken ob es jedes mal laggt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, Addressables sind halt einfach nur ein AssetBundles-Wrapper... aber mir fällt gerade auf, dass LoadAssetAsync eher weniger instanziieren dürfte, also ist da dieselbe Frage am Ende. Bist du dir sicher, dass Addressables asynchron instanziieren (und nicht nur laden) können?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...