Jump to content
Unity Insider Forum

Unity Inventar: jedes Gameobject in der Szene?


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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...
 Share

×
×
  • Create New...