Jump to content
Unity Insider Forum
Sign in to follow this  
F1R3ON

Scriptable Objects oder JSON?

Recommended Posts

Liebe Community, eine Frage an die erfahrenen Unity Nutzern.

Ist es besser Items für ein Inventar in Scriptable Objects zu speichern oder in einer JSON Datei?

Was wären die genauen Vor- und Nachteile.

Bei Scriptable Objects wäre ja ein Object ein Item also hätte man dann bei 100 Items = 100 Scriptable Objects und bei JSON wären die Items einfach in einer Liste, oder?

Es muss doch Vor- und Nachteile geben?

Share this post


Link to post
Share on other sites

ScriptableObjects haben den Vorteil dass es im Editor bekannte UnityEngine.Objects sind. Diese können per Drag&Drop im Inspektor zugewiesen werden. Du willst eine Loot-Truhe haben? Dann baust du ein Script mit einer Item-Liste und ziehst deine Items da rein. Der Unity Editor ist eine mächtige Dependency Injection-Maschine und wenn du deine Daten in Textformat abspeicherst (nicht, dass ScriptableObjects nicht auch im Textformat sind, aber... du weißt schon), dann verlierst du die Vorteile, die das bietet.Vorteile von JSON... ganz ehrlich, sehe ich nicht so. Man könnte da dies und das mit machen... Item-Listen für HTTP serialisieren oder sowas... aber eigentlich kannst du das auch mit ScriptableObjects :). Das Einzige, was mir einfiele, ist das, was du schon gesagt hast - werden halt im Zweifelsfall viele Objekte. Aber die packst du halt in vernünftige Ordner, gibst ihnen Asset Labels und kannst mit der Suchleiste in der Project View ganz fix alles finden, was du suchst. Ist mit JSON auch nicht drin. Und 100 Items in einer JSON-Datei sind auch nicht gerade übersichtlich.

Share this post


Link to post
Share on other sites

Wären Scriptable Objects nicht auch sicherer als JSON Files?

Z.B. für die Veränderung von Items (Bessere Werte geben etc.)

Share this post


Link to post
Share on other sites

Nö, kein Unterschied. Wenn du deine Json-Datei in den Assets hast, wird sie genau wie ScriptableObjects mit anderen Sachen zusammen in Pakete gepackt.ScriptableObjects sind halt auch nur Yaml-Dateien, und Yaml und Json geben sich nix. Was @runner78 meint, ist das Einlesen einer Json-Datei, die du deinem Build beifügst. Ob du dafür Json oder sonstwas nimmst, ist wurscht. Und Sicherheit gibt's sowieso keine.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×