Bonjour à tous,
Je cherche à sauvegarde une list dans un Json. C'est un cas simple pour m'entrainer.
Je veux donc sauvegarder les meilleurs score effectué par les joueurs. Je dois sauvegarder leur pseudo et score.
Dans mes première version aucun soucis j'arrive a le faire mais la j'essaie d'améliorer un peu l'architecture histoire de m'entrainer à faire quelque chose de propre.
J'ai donc créé une classe HighScore :
ensuite j'ai créé une classe HighScores (mais c'est peu être la que je fais fausse route)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [System.Serializable] public class HighScore { public string PlayerName; public int Score; }
et je vais appeler le tout dans une petite méthode pour tester la sauvegarde
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [System.Serializable] public class HighScores : List<HighScore> { }
Mon fichier Json reste vide malheureusement mais je n'arrive pas a voir pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public void SaveHighScores() { HighScores highScores = new HighScores(); HighScore highScore = new HighScore(); highScore.PlayerName = "Test"; highScore.Score = 25; highScores.Add(highScore); string json = JsonUtility.ToJson(highScores); string filePath = Application.persistentDataPath + "/savefile.json"; File.WriteAllText(filePath, json); }
J'ai bien trouver une solution en utilisant :
et pour la sauvegarde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [System.Serializable] public class HighScores : List<HighScore> { public List<HighScore> highScores; }
Mais je ne trouve pas cela pas vraiment bien au niveau de l'écriture et lecture du code .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public void SaveHighScores() { HighScores highScores = new HighScores(); HighScore highScore = new HighScore(); highScore.PlayerName = "Test"; highScore.Score = 25; highScores.highScores = new(); highScores.highScores.Add(highScore); string json = JsonUtility.ToJson(highScores); string filePath = Application.persistentDataPath + "/savefile.json"; File.WriteAllText(filePath, json); }
Merci d'avance
PS: Je viens du Java j'ai peut être pas bien fait les chose niveau C#
Partager