[c#] Sauvegarder une List<int> avec PlayerPref

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
aryal
Messages : 74
Inscription : 30 Mai 2014 10:32

[c#] Sauvegarder une List<int> avec PlayerPref

Message par aryal » 02 Juil 2015 18:17

Voila j'aimerais savoir s'il est possible de sauvegarder juste une liste sans avoir fait un appel de class ?

Ma List est :

Code : Tout sélectionner

public List<int> itemID = new List<int>();
pour sauvegarder j'ai essayer sans réel succès plusieurs manière, j'ai laisser avec le bug pour le moment :

Code : Tout sélectionner

public void Save()
	{
		for (int i = 0; i < itemID.Count; i ++) {

                               // Faire en sorte que l'itemID de la case i puisse être sauvegarder.
				PlayerPrefs.SetInt ("Item" +i, itemID);
		}		
		}
Si ce n'est pas possible je changerais mon code en mettant une class puisque j'arrive à faire des sauvegardes déjà comme ça.
Mais si je fais ça je devrais changer d'autre partis de mon scripts ce qui ne m’enchante pas vraiment.

Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: Sauvegarder une List<int> avec PlayerPref

Message par Matt45400 » 02 Juil 2015 18:26


aryal
Messages : 74
Inscription : 30 Mai 2014 10:32

Re: Sauvegarder une List<int> avec PlayerPref

Message par aryal » 03 Juil 2015 00:00

ça me semble être ça mais j'ai un nouveau problème, j'essaie de transformer ma List<int> en Array[] pour le moment sans résultat, j'ai bien vu qu'il y avait un exemple pour le transformer mais c'est en java et ne n'y connais franchement pas grand chose, pire qu'en c#, c'est dire :oops: .

Voici comment j'ai essayer de faire pour le moment :

Code : Tout sélectionner

int[] itemIDListe = itemID.ToArray();

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: Sauvegarder une List<int> avec PlayerPref

Message par E3DStef » 03 Juil 2015 08:30

Salut

int = INTEGER (tu déclares le type de ta variable/array)
itemIDListe = nom de ton array

donc moi j'écrirai plutôt :

Code : Tout sélectionner

    int itemIDListe[] = itemID.ToArray();
Perso mets plus de code, mets le avant et après que nous puissions voir le contexte et ne pas faire de suppositions erronées.

A+

Stef
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

aryal
Messages : 74
Inscription : 30 Mai 2014 10:32

Re: Sauvegarder une List<int> avec PlayerPref

Message par aryal » 03 Juil 2015 14:27

Il y a un "Using" spécifique a mettre en debut de script ? car la ligne que tu viens de me donner n'est pas bonne non plus.

J'utilise

Code : Tout sélectionner

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
pour le code j'essaye de faire au plus claire car j'ai des bout de code dans plusieurs scripts ( playerControler, GUI, Conteneur), donc ça reviendrait a écrire plusieurs centaine de ligne et je ne pense pas que beaucoup serait prêt a lire tout le post et a répondre :? .

Vu qu'on parle de PlayerPref, comment savoir si on est arriver au 1Mo de stockage ? j'ai beaucoup utiliser cette fonction je me demande quel est ça limite.

Merci pour vos réponses.

Avatar de l’utilisateur
artemisart
Messages : 1893
Inscription : 21 Juin 2011 19:51
Localisation : Centre
Contact :

Re: Sauvegarder une List<int> avec PlayerPref

Message par artemisart » 05 Juil 2015 19:32

@Expert3D attention on est en c# pas en c++ là ! :D l'array fait bien partie du type et non du nom

@aryal Qu'est-ce qui ne marche pas dans int[] itemIDListe = itemID.ToArray(); ? tu as une erreur dans la console ?

Sinon si tu veux save à la main il faut que tu rajoute l'indexer dans ton premier code :

Code : Tout sélectionner

    public void Save() {
    	for (int i = 0; i < itemID.Count; i++) {
    		// Faire en sorte que l'itemID à la case i puisse être sauvegardé
    		PlayerPrefs.SetInt("itemID#" + i, itemID[i]);
    	}
    }

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: Sauvegarder une List<int> avec PlayerPref

Message par E3DStef » 06 Juil 2015 15:09

artemisart a écrit :@Expert3D attention on est en c# pas en c++ là !
:oops: oupsss tout à fait exact ;-) d-é-s-o-l-é
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

Répondre

Revenir vers « (C#) CSharp »