This is an old revision of the document!


Sisteme de gestiune a datelor

Cerinte

Realizati o secventa de 3 scene in Unity cu urmatoarele functionalitati:

  • O scena cu un meniu principal:
    • Din care sa se selecteze dificultatea jocului
    • Sa se introduca un nume
    • Un buton de load game
  • O prima scena de joc cu un player
    • se afiseaza UI cu XP, nume si healthbar
    • playerul este controlabil si poate ataca
    • playerul are viata si XP
    • exista 1 sau mai multi inamici in scena
      • inamicul are viata mai mare sau mai mica in functie de dificultatea selectata
      • eliminarea unui inamic de catre player duce la castigarea de XP
      • XP oferit de inamic este in functie de dificultatea selectata
  • Un portal catre un nou level de joc (o noua scena)
    • personajul isi pastreaza informatiile de viata si XP si se afiseaza UI-ul similar
  • Un buton de save game pe UI

Documentatie video

Inregistrare pe Teams

Documentatie extinsa text

PlayerPrefs

PlayerPrefs este o sectiune de setari statice, valabile pentru o aplicatie (un Player Unity, de unde si numele de PlayerPrefs). Asadar, PlayerPrefs este dedicat setarilor de player in general ca rezolutie, volum, etc, dar poate fi folosit in variante simple si pentru alte lucruri simple (de ex un username, daca este local).

Permite o salvare limitata ca dimensiune de valori Int, Float sau String intr-un index de tip key-value.

Atentie! Toate datele se salveaza in format text pe disc, nu exista nici o forma de protectie/criptare. Asadar, nu se salveaza informatii sensibile (parole etc.)

PlayerPrefs.SetInt("score",5);
PlayerPrefs.SetFloat("volume",0.6f);
PlayerPrefs.SetString("username","John Doe");
PlayerPrefs.Save();
 
 
int score = PlayerPrefs.GetInt("score");
float volume = PlayerPrefs.GetFloat("volume");
string player = PlayerPrefs.GetString("username");

Don't Destroy On Load

Încărcarea unei noi Scene distruge toate obiectele Scenei curente. Astfel, puteti folosi Object.DontDestroyOnLoad pentru a păstra un obiect în timpul încărcării unei noi scene. Dacă obiectul țintă este o componentă sau GameObject, Unity păstrează, de asemenea, toți copiii din ierarhie. Object.DontDestroyOnLoad funcționează numai pentru GameObject root sau componente de pe GameObjects root (adica copii directi ai scenei in ierarhie).

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class MyPlayerClass: MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
}

Serializare

Serializarea este procesul de conversie a unui obiect într-un flux de octeți sau string de caractere pentru a stoca obiectul sau a-l transmite în memorie, într-o bază de date sau într-un fișier. Scopul său principal este de a salva starea unui obiect pentru a-l putea recrea atunci când este necesar. Procesul invers se numește deserializare.

Obiectul este serializat într-un flux, care transportă nu doar datele, ci și informații despre tipul obiectului, cum ar fi versiunea, sau numele ansamblului. Din acel flux, poate fi stocat într-o bază de date, într-un fișier sau în memorie.

Serializarea permite dezvoltatorului să salveze starea unui obiect și să-l recreeze după cum este necesar, oferind stocarea obiectelor, precum și schimbul de date.

Tipuri de serializare:

  1. Binary Serialization
  2. XML Serialization
  3. JSON Serialization
pjv/laboratoare/2023/10.1702299470.txt.gz · Last modified: 2023/12/11 14:57 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0