Beständig data
Last updated
Last updated
Ett väldigt enkelt sätt att spara data så att den inte förstörs vid scenbyte är att lagra datan i en variabel.
Eftersom statiska variabler inte är knutna till någon specifik instans av klassen så finns de kvar även när alla instanser som finns i scenen förstörts. Därför kan de användas för att lagra data som ska föras över från en scen till en annan.
Objektet som anges som parameter kommer inte att förstöras när en ny scen laddas, utan ligga kvar i minnet. Det betyder att alla objektets variabler också behåller sina värden. Objektet kan sedan hittas i den nya scenen genom t.ex. Find, och dess värden läsas av.
Kan användas för att spara strings, ints och floats för spelet.
Sparar alla värden till hårddisk.
Tar emot en string som parameter, returnerar true ifall det finns ett värde med det namnet.
Tar emot en string som parameter, tar bort värdet med det namnet (om det finns).
Tar bort alla värden.
Läser av respektive ändrar på ett int-värde med det namn som anges som parameter.
Läser av respektive ändrar på ett int-värde med det namn som anges som parameter.
Läser av respektive ändrar på ett string-värde med det namn som anges som parameter.
I Windows är Application.persistentDataPath lika med:
Där %userprofile% är din användares mapp (t.ex. C:\Users\Krank) och <companyname> och <productname> är de som angetts under Player Settings (Edit → Project Settings → Player).
För att förbereda en klass för serialisering med JsonUtility, markera den som [System.Serializable].
Sedan kan instanser av klassen serialiseras / deserialiseras.
Tar emot ett objekt som parameter, returnerar JSON-kod. Lägger man med både ett objekt och ett boolskt värde så avgör det boolska värdet huruvida JSON-koden är snyggt formaterad med indrag etc.
Tar emot en klass mellan <> och en string som parameter. Returnerar en instans av klassen, baserad på den deserialiserade JSON-koden i stringen.
för att läsa och skriva data fungerar precis likadant i Unity. Däremot bör man använda Application.persistentDataPath som första del av alla filnamn för att se till så filerna sparas i rätt mapp (spelets data-mapp).
Även om senare versioner av Dotnet har för att serialisera och deserialisera så saknas dessa i den version av Dotnet som ingår i Unity. Istället har Unity JsonUtility.