Kezdőoldal » Számítástechnika » Programozás » Unityben statikus dolgok...

Unityben statikus dolgok adatbázisszerű tárolása?

Figyelt kérdés

Gondolok itt olyan dolgokra, hogy loot table (szörny - item - item dobásának esélye)

Item table (item name, type, armor, stb)


Eddig scriptable objectekben gondolkodtam, de túl sok a macera, és kíváncsi lennék, hogy milyen más, hasonló / jobb teljesítményű megoldás van Unityben egy adatbázis megvalósítására.


(Gondoltam arra is, hogy pár egyszerű tömbben tárolom a kívánt dolgokat, és egy Loader scriptben hoznám létre őket, bár ez elég primitív, és nem tudom, hogy mennyire effektív)


2016. aug. 27. 22:09
 1/6 A kérdező kommentje:

Közben az XML mellett döntöttem.


Az lenne a kérdésem, hogy buildelés után hogy lehet megtalálni a projektben lévő szöveges fájlokat? (mert ugye ha nem lehetne, akkor nem lenne értelme a titkosításnak.)

2016. aug. 27. 23:50
 2/6 anonim ***** válasza:

XML helyett lehet, hogy jobban jársz a JSON formátummal, az praktikusabb.


Bár kicsit premature optimalizáció-szagú, de megfelelően megtervezett dictionary-k használatával gyorsíthatsz a betöltött táblákban való keresésen, hogy ne kelljen iterálnod, ráadásul egy valamirevaló JSON lib általában közvetlenül tud JSON objektumot dictionary-be parse-olni.


Az utólag feldobott kérdésedre sajnos most nem tudok választ, talán valaki, aki járatosabb a Unity projektek háza táján.

2016. aug. 28. 00:07
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
A scriptable object számottevően kisebb macera mint minden egyes alkalommal újrafordítani ha hozzádsz valamit a static listádhoz(vagy ha bármit csinálsz vele), de még az xml\jason sem egyszerűbb mindent összevetve, mert oké, hogy találsz hozzájuk jó szerkesztőket, de az adatok kezelését ugyanúgy meg kell oldanod(egy scriptable object létrehozása meg baromira gyorsan megvan, onnantól sokkal egyszerűbb az élet, nem string alapú kereséseket kell csinálnod pl mint xml\jason esetében, egyrészt gyorsabban is fut, másrészt meg nem fogsz az elírások miatt szívni). Szóval ha nem rengeteg adattal foglalkozol(vagy nincs már most egy nagy adatbázis amit be kéne húznod) akkor nem erőltetném.
2016. aug. 29. 13:58
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

#3: Ezek az adatformátumok eléggé elterjedtek, találsz hozzájuk kiforrott, jól támogatott libet/frameworköt, egyáltalán nem kell sztringes/regexes mókolásokkal bajlódni.


Ennyi vele a dolgod:

- Létrehozod a megfelelő osztályokat, amelyek fogadják az adatot (pl. Item)

- Bizonyos API-k esetén meg kell annotálni (igazán nem megterhelő, de a Json.NET nem kéri ezt sem)

- A libet behúzod dependenciának

- A lib parse-olja a JSON-t és feltölti a tartalmával az objektumodat


Ennyi az egész, és oda-vissza kiválóan működik:

[link]


Nemhogy nem kell újrafordítani változtatásnál, de ügyesen megoldva akár a futás kellős közepén is frissítheted a JSON-t anélkül, hogy látható teljesítményromlást okozna.


Nem vagyok persze a scriptable object ellensége, de a kérdező alternatívát kért, így kínáltam neki egy rentábilis megoldást. Scriptelni nem tudsz vele, csak adatot tárolni, de a kérdés épp adattárolásra irányul.

2016. aug. 29. 17:01
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Az újrafordítást csak és kizárólag a static változókba mentésre értettem, nem is akartam azt a látszatot kelteni hogy xml\jason esetén is ez lenne a helyzet.


Elsősorban amit én problémásnak találok a szöveg alapú tárolásnál az az, hogy stringekkel kell dolgoznod, az ilyen előbb-utóbb elíráshoz vezet(szemben ha mondjuk scriptable objectet használsz simán behúzod inspectorban amit szeretnél, azt ha akarnád sem tudnád elrontani). Egyértelműen van létjogosultsága persze, és nagyon sok adatnál(vagy már meglévő adatbázisnál) én is ezt a megoldást használnám, de nulláról írva nekem személy szerint(~szó nincs kőbe vésett igazságról, illetve eseti kivételt gondolkodás nélkül tennék ha arról van szó) hatékonyabbnak tűnik a scriptable object.

2016. aug. 29. 17:27
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

Igen, IDE support nélkül megvan ez a kockázata a dolognak sajnos, mint gyakorlatilag bármiféle konfiguráció, vagy adatbázis esetén. Mérlegelni kell, hogy ezt a kockázatot vajon megéri-e a hozzáadott érték.


Egyébiránt tényleg adja magát a ScriptableObject.


Kérdező, a te esetedben mi teszi macerássá?

2016. aug. 29. 17:41
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!