Le sauvegarde de données dans Unity
- MetalDiamond
- Messages : 154
- Inscription : 25 Juil 2013 22:34
- Localisation : Silent Hill
Le sauvegarde de données dans Unity
Bonjour !
Alors pour le coup je ne viens pas vous demander comment faire mais plutôt la solution que vous adoptez majoritairement.
En cherchant comment sauvegarder les données d'une session de jeu à l'autre dans Unity je suis d'abord tombé sur les PlayerPrefs, déjà le nom du module me fait plus penser à la sauvegarde de petites données de config plutôt qu'une partie en elle même mais passons ^^. Le défaut que ça a l'air d'avoir (je me plante peut être) c'est que si le jeu est Update (dossier Data et .exe donc) il me semble que tout est perdu.
A partir de là je suis tombé sur un méthode (en C#) permettant de "sérialiser" un objet voire une liste d'objets pour les enregistrer sous la forme d'une chaîne de caractères dans les fameuses PlayerPrefs OU dans un fichier, plus intéressant donc dans la mesure ou le fichier peu survivre à une Update du jeu.
Humm, vous faites comment vous ? =3
Alors pour le coup je ne viens pas vous demander comment faire mais plutôt la solution que vous adoptez majoritairement.
En cherchant comment sauvegarder les données d'une session de jeu à l'autre dans Unity je suis d'abord tombé sur les PlayerPrefs, déjà le nom du module me fait plus penser à la sauvegarde de petites données de config plutôt qu'une partie en elle même mais passons ^^. Le défaut que ça a l'air d'avoir (je me plante peut être) c'est que si le jeu est Update (dossier Data et .exe donc) il me semble que tout est perdu.
A partir de là je suis tombé sur un méthode (en C#) permettant de "sérialiser" un objet voire une liste d'objets pour les enregistrer sous la forme d'une chaîne de caractères dans les fameuses PlayerPrefs OU dans un fichier, plus intéressant donc dans la mesure ou le fichier peu survivre à une Update du jeu.
Humm, vous faites comment vous ? =3
Re: Le sauvegarde de données dans Unity
Salut,
Ca dépend de ce que tu as à sauvegarder. Si c'est un petit jeu mobile avec un score, un nombre de pièces et une caractéristique à enregistrer il faut passer par les playerprefs. C'est simple, rapide et portable.
Si tu as un gros jeu type RPG avec une barre de compétences, des caractéristiques sur ton personnage, 300 quêtes etc il faut passer par la sérialisation. Tu as sur le wiki un script sur la sérialisation xml des données.
Ca dépend de ce que tu as à sauvegarder. Si c'est un petit jeu mobile avec un score, un nombre de pièces et une caractéristique à enregistrer il faut passer par les playerprefs. C'est simple, rapide et portable.
Si tu as un gros jeu type RPG avec une barre de compétences, des caractéristiques sur ton personnage, 300 quêtes etc il faut passer par la sérialisation. Tu as sur le wiki un script sur la sérialisation xml des données.
- MetalDiamond
- Messages : 154
- Inscription : 25 Juil 2013 22:34
- Localisation : Silent Hill
Re: Le sauvegarde de données dans Unity
Pour le coup c'est plus proche du RPG que du simple Highscore (dans ton example hein ^^) Donc j'irais voir ca, merci ^^
Re: Le sauvegarde de données dans Unity
Il commence à y avoir, avec le temps, de plus en plus de choix pour créer un système de sauvegarde.
En effet comme dit au-dessus, en général, il faut préférer PlayerPrefs pour de petite sauvegarde. Un temps, un score, un level mais dès lors où cela devient très complexe il vaut mieux passer par d'autres méthodes. Vis-à-vis de PlayerPrefs, il y a aussi PlayerPrefsX (voir Unify Community Wiki) qui étend un petit peu les possibilités de ce dernier.
Sinon après tu as le choix, Xml, Json ou encore Binary. Les trois sont bien. Json étant celui que j'ai le moins approfondi je laisse à qui connait le mieux en parler.
Saving and Loading Data : XmlSerializer (Xml)
Persistence - Saving and Loading Data (Binary)
Clé en main : Unity Serializer sur le site WhyDoIDoIt (Bien qu'attention à ce dernier je commence à avoir des doutes sur le maintien de l'asset par moment)
Encore une fois tout dépend de ce que tu auras à sauvegarder et surtout s'il y a beaucoup à sauvegarder.
Edit : Donc pas PlayerPrefs ce serait trop lourd et brouillon pour un système de sauvegarde type RPG.
En effet comme dit au-dessus, en général, il faut préférer PlayerPrefs pour de petite sauvegarde. Un temps, un score, un level mais dès lors où cela devient très complexe il vaut mieux passer par d'autres méthodes. Vis-à-vis de PlayerPrefs, il y a aussi PlayerPrefsX (voir Unify Community Wiki) qui étend un petit peu les possibilités de ce dernier.
Sinon après tu as le choix, Xml, Json ou encore Binary. Les trois sont bien. Json étant celui que j'ai le moins approfondi je laisse à qui connait le mieux en parler.
Saving and Loading Data : XmlSerializer (Xml)
Persistence - Saving and Loading Data (Binary)
Clé en main : Unity Serializer sur le site WhyDoIDoIt (Bien qu'attention à ce dernier je commence à avoir des doutes sur le maintien de l'asset par moment)
Encore une fois tout dépend de ce que tu auras à sauvegarder et surtout s'il y a beaucoup à sauvegarder.
Edit : Donc pas PlayerPrefs ce serait trop lourd et brouillon pour un système de sauvegarde type RPG.
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
- stigma
- Messages : 1412
- Inscription : 17 Nov 2012 18:29
- Localisation : Perdu dans les mondes de Myst
- Contact :
Re: Le sauvegarde de données dans Unity
Bonjour,
Est-ce que PlayerPrefs est adapté pour sauvegarder environ 200 variables, des vector3 mais principalement des int ?
Merci
Est-ce que PlayerPrefs est adapté pour sauvegarder environ 200 variables, des vector3 mais principalement des int ?
Merci
Re: Le sauvegarde de données dans Unity
Pas vraiment cherché dis donc...
Techniquement, je dirais qu'il n'y a pas de "réelle" limites. Mais passé un certains seuil il est bien plus pratique d'utiliser d'autres systèmes comme ceux que j'avais cités ci-dessus par exemple. En revanche, si c'est pour un support Webplayer, (ils le disent eux même) il y a une taille limite de 1 megabyte. Passé cette limite, les SetInt, SetFloat et SetString ne seront plus sauvegardés.
Google donne bien assez d'informations si on utilise les bon mots-clés... "PlayerPrefs Lmitations"
Techniquement, je dirais qu'il n'y a pas de "réelle" limites. Mais passé un certains seuil il est bien plus pratique d'utiliser d'autres systèmes comme ceux que j'avais cités ci-dessus par exemple. En revanche, si c'est pour un support Webplayer, (ils le disent eux même) il y a une taille limite de 1 megabyte. Passé cette limite, les SetInt, SetFloat et SetString ne seront plus sauvegardés.
Google donne bien assez d'informations si on utilise les bon mots-clés... "PlayerPrefs Lmitations"
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
- stigma
- Messages : 1412
- Inscription : 17 Nov 2012 18:29
- Localisation : Perdu dans les mondes de Myst
- Contact :
Re: Le sauvegarde de données dans Unity
Alors c'est bon, mon projet n'est pas en webplayer (trop important). Merci
- stigma
- Messages : 1412
- Inscription : 17 Nov 2012 18:29
- Localisation : Perdu dans les mondes de Myst
- Contact :
Re: Le sauvegarde de données dans Unity
Je n'avais pas pensé aux fichiers xml dans le cas de Unity. Merci !
Re: Le sauvegarde de données dans Unity
bin c'est pareil? c'est de la sérialisation en XML??!! en JSON ou ce que tu veux....
le problème du XML c'est que ce dernier est facilement éditable aussi, et donc le joueur triche!
le problème du XML c'est que ce dernier est facilement éditable aussi, et donc le joueur triche!
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !