Tutto il codice è disponibile gratuito Qui:
Nello specifico vogliamo esaminare – /blob/master/Assets/Scripts/Inventory/InventorySaveSystem.cs
Puoi guardarmi mentre spiego tutto, riga per riga, qui:
Ho ricercato diversi modi per creare un piano di salvataggio. Molti tutorial consigliano di utilizzare il file Unity PlayerPrefs. Il file è lì per salvare le preferenze dell’utente e cose del genere, quindi usarlo per salvarlo sembra più un hack che altro.
Ho deciso di utilizzare gli strumenti JSON integrati in Unity ma questo mi dà anche un grosso problema: gli oggetti che stai archiviando devono avere un dominio pubblico. Mi piace mantenere le mie classi ben racchiuse (separate da tutto ciò che non deve essere toccato o non è correlato a funzionalità/dati), quindi ho scelto lo spazio dei nomi IO (input output) integrato di Microsoft.
Utilizzerai StreamWriter e StreamReader rispettivamente per archiviare e scaricare. Gli esempi qui spiegano molto di ciò che devi sapere.
Il metodo che ho utilizzato per archiviare le mie risorse prevedeva la ricerca di tutti gli oggetti nel mio progetto utilizzando il metodo Resources.FindAllObjectsOfType di Unity.
Quando memorizzo la proprietà, digito il codice dell’elemento (hash utilizzando Animator.StringToHash) concatena un carattere per dividere il codice per il conteggio dell’elemento e calcolare il conteggio.
Per installare, viene letta ogni riga nel file di salvataggio. Le righe sono divise per il carattere che le ha suddivise nella scrittura, e la prima parte della suddivisione della riga è il codice e la seconda parte è il calcolo. Le stringhe sono state convertite in numeri e il numero dell’articolo è stato inserito in un dizionario che avevo creato in precedenza con tutti i codici articolo e gli articoli correlati per recuperare l’articolo.
Man mano che troviamo ciascun elemento con il numero dell’articolo, lo aggiungiamo al secondo dizionario (il valore restituito dal metodo Load) e lo restituiamo agli elementi che l’elenco può scegliere di fare con il dizionario – (ad esempio aggiungili a Inventario) .
Lascio ai lettori decidere come conservare le letture. Nel mio caso, lo faccio con il callback OnDisable presente su tutti i MonoBehaviour. Puoi farlo sull’evento onClick del pulsante: poiché è un metodo pubblico, puoi rilasciare lo script SaveInventory nel campo che appare nell’inspector quando aggiungi l’evento onClick al campo del pulsante.
Speriamo che questo aiuti; lasciate eventuali domande nei commenti (meglio su YouTube che qui).
Gaming Hub
Game online adalah jenis permainan video yang dimainkan melalui jaringan internet. Game ini memungkinkan pemain untuk berinteraksi dengan pemain lain secara real-time, baik itu dalam bentuk kerja sama, kompetisi, atau eksplorasi dunia virtual bersama-sama.