[RESOLU] Questions pour les playerPrefs
-
- Messages : 65
- Inscription : 29 Août 2017 10:34
[RESOLU] Questions pour les playerPrefs
Bonsoir, cela fait quelque mois que je développe mon tout premier jeu et je suis arrivé au système de sauvegarde. Je vous explique... Le joueur choisi une arme dans le niveau 0, le jeu sauvegarde le choix de l'arme et une fois dans le jeu (niveau 1) le jeu regarde quel arme le joueur a choisi pour lui la donner (en gros) mais le tout en deux scripts différent, soit :
Niveau0 - Script1 : "PlayerPrefs.SetInt("...", ...);"
Niveau1 - Script2 : "PlayerPrefs.GetInt("...");"
j'ai essayer ce système mais cela ne marche pas... Donc je voulais savoir si c'est possible et si dans les deux cas (possible ou non) la démarche à suivre pour que le système soit opérationnelle ^^ Merci !!
Niveau0 - Script1 : "PlayerPrefs.SetInt("...", ...);"
Niveau1 - Script2 : "PlayerPrefs.GetInt("...");"
j'ai essayer ce système mais cela ne marche pas... Donc je voulais savoir si c'est possible et si dans les deux cas (possible ou non) la démarche à suivre pour que le système soit opérationnelle ^^ Merci !!
Re: Questions pour les playerPrefs
Bonsoir,
Car normalement cela fonctionne très bien.
Si tu fait un PlayerPrefs.SetInt("Element", 22); par exemple, puis quelque soit le level
un int v = PlayerPrefs.GetInt("Element"); tu ne devrais pas avoir de soucis à récupérer ta valeur. C'est bien le but d'ailleurs du système des PlayerPrefs.
Juste faire attention au nom de la clé qui doit être parfaitement identique (respect majuscules/minuscules, etc..)
Tu as du louper un truc je pense alors.GameWorldStudio a écrit : ↑08 Août 2018 21:39Niveau0 - Script1 : "PlayerPrefs.SetInt("...", ...);"
Niveau1 - Script2 : "PlayerPrefs.GetInt("...");"
j'ai essayer ce système mais cela ne marche pas...
Car normalement cela fonctionne très bien.
Si tu fait un PlayerPrefs.SetInt("Element", 22); par exemple, puis quelque soit le level
un int v = PlayerPrefs.GetInt("Element"); tu ne devrais pas avoir de soucis à récupérer ta valeur. C'est bien le but d'ailleurs du système des PlayerPrefs.
Juste faire attention au nom de la clé qui doit être parfaitement identique (respect majuscules/minuscules, etc..)
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Questions pour les playerPrefs
Fait gaffe quand même à ce que tu met de les playerPrefs, c'est pas du tout sécure (et pas super opti il me semble) car les joueurs peuvent le modifier sans problème.
Mais après tout si la sécu n'est pas ta priorité (pas de multi notamment) ça reste le plus simple.
Sinon faudrait que tu passe par une Serialization, si tu maitrise pas et que tu veux te lancer la dedans, je peux te balancer un exemple vite fait.
Mais après tout si la sécu n'est pas ta priorité (pas de multi notamment) ça reste le plus simple.
Sinon faudrait que tu passe par une Serialization, si tu maitrise pas et que tu veux te lancer la dedans, je peux te balancer un exemple vite fait.
-
- Messages : 65
- Inscription : 29 Août 2017 10:34
Re: Questions pour les playerPrefs
TUTO UNITY FR nous a montré une Asset permettant de crypter les données PlayerPrefs donc ne vous en faite pas pour ça ^^ Ensuite je vais revoir mon code et voir ce qui ne vas pas vu que du coup mon système doit marché... Merci pour votre aide je vous recontacte dès qu'il y a du nouveau !
- boubouk50
- ModoGenereux
- Messages : 6219
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Questions pour les playerPrefs
As-tu essayer de faire un PlayerPrefs.Save () après le PlayerPrefs.SetInt ()?
Il me semble qu'il est important sur certaines plateformes.
Il me semble qu'il est important sur certaines plateformes.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 65
- Inscription : 29 Août 2017 10:34
Re: Questions pour les playerPrefs
Je ne connaissais pas cette notion de PlayerPrefs, je vais l'utiliser et je vous recontacterai pour vous dire si, avec cette notion, le système marche
-
- Messages : 65
- Inscription : 29 Août 2017 10:34
Re: Questions pour les playerPrefs
Alors je viens de rajouter la ligne sur mon code, mais unity me met cette erreur :
"Assets/OnEquiped.js(89,33): BCE0017: The best overload for the method 'UnityEngine.PlayerPrefs.Save()' is not compatible with the argument list '(String, int)'."
Des idées ?
"Assets/OnEquiped.js(89,33): BCE0017: The best overload for the method 'UnityEngine.PlayerPrefs.Save()' is not compatible with the argument list '(String, int)'."
Des idées ?
- boubouk50
- ModoGenereux
- Messages : 6219
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Questions pour les playerPrefs
Poste ta ligne de code stp. On est pas devin.
tu es sensé mettre une fois terminés tes PlayerPrefs.SetInt (...);
tu es sensé mettre
Code : Tout sélectionner
PlayerPrefs.Save();
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 65
- Inscription : 29 Août 2017 10:34
Re: Questions pour les playerPrefs
J'ai réflechi et j'ai un peu changer le système pour qu'il soit, je pense, plus facile à mettre en place. Donc voyez la chose suivante. Dans une scène 0, et avec ce script qui est attaché à un bouton, le joueur choisit une arme, arme qui est dans le script à l'état de boolean (ici j'ai mis 1 ou 0 pour sauvegarder dans les playerprefs) soit :
"var usp : int = 0;"
Lorsque le joueurs clique sur le bouton (le bouton représente l'arme voulu en quelque sorte), le jeu sauvegarde le choix. (il y a 20 arme, donc 20 booleans et j'indique au script de quel arme il s'agit avec le système 0 et 1, 1 lorsque le bouton représente l'arme) donc :
"PlayerPrefs.SetInt("USP1", usp);
PlayerPrefs.Save();
Debug.Log("usp choisi");"
Ensuite lorsque le joueur rentre dans le jeu, scène 1, le script, qui est assigné au FPSController s'active et dans la fonction Start, le script cherche quel arme a été choisi (en gros il regarde quel booleans est égal à 1) donc dans ce cas la c'est la boolean "usp" qui doit être égal à 1 soit :
"PlayerPrefs.GetInt("USP1", usp);"
Mais lorsque je test ceci, toute les valeur du script attacher au FPScontroller restent a 0, soit la valeur 1 sauvegardé dans la scène précédente ne se met pas dans la scène suivante...
"var usp : int = 0;"
Lorsque le joueurs clique sur le bouton (le bouton représente l'arme voulu en quelque sorte), le jeu sauvegarde le choix. (il y a 20 arme, donc 20 booleans et j'indique au script de quel arme il s'agit avec le système 0 et 1, 1 lorsque le bouton représente l'arme) donc :
"PlayerPrefs.SetInt("USP1", usp);
PlayerPrefs.Save();
Debug.Log("usp choisi");"
Ensuite lorsque le joueur rentre dans le jeu, scène 1, le script, qui est assigné au FPSController s'active et dans la fonction Start, le script cherche quel arme a été choisi (en gros il regarde quel booleans est égal à 1) donc dans ce cas la c'est la boolean "usp" qui doit être égal à 1 soit :
"PlayerPrefs.GetInt("USP1", usp);"
Mais lorsque je test ceci, toute les valeur du script attacher au FPScontroller restent a 0, soit la valeur 1 sauvegardé dans la scène précédente ne se met pas dans la scène suivante...
Re: Questions pour les playerPrefs
Bonsoir,
si tu souhaites récupérer dans 'usp' la valeur, tu dois écrire (cf la doc)
Si tu passes une variable en second paramètre, c'est considéré comme valeur par défaut si la clé n'existe pas.
ta syntaxe n'est pas la bonne.GameWorldStudio a écrit : ↑10 Août 2018 22:01le script cherche quel arme a été choisi (en gros il regarde quel booleans est égal à 1) donc dans ce cas la c'est la boolean "usp" qui doit être égal à 1 soit :
"PlayerPrefs.GetInt("USP1", usp);"
si tu souhaites récupérer dans 'usp' la valeur, tu dois écrire (cf la doc)
Code : Tout sélectionner
var usp : int = PlayerPrefs.GetInt("USP1");
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ