Files
Infratest/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs
T

65 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
using UnityEngine;
namespace Code.Example.Race
{
public class PlayerPrefsRacePoopshitter
{
private List<RaceData> _races = new();
public PlayerPrefsRacePoopshitter()
{
GetRaces();
}
public List<RaceData> GetRaces()
{
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
using (StreamReader reader = new(path))
{
var json = reader.ReadToEnd();
_races = JsonConvert.DeserializeObject<List<RaceData>>(json);
}
// for (int i = 0; i < _raceCount; i++)
// races.Add(new(
// PlayerPrefs.GetFloat($"Race{i}"),
// PlayerPrefs.GetInt($"Place{i}")));
return _races;
}
public void AddRace(RaceData race)
{
// PlayerPrefs.SetFloat($"Race{_raceCount}", race.raceTimeSeconds);
// PlayerPrefs.SetInt($"Place{_raceCount}", race.place);
// PlayerPrefs.SetInt("RaceCount", ++_raceCount);
_races.Add(race);
var json = JsonConvert.SerializeObject(_races, Formatting.Indented);
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
using (StreamWriter writer = new(path))
{
writer.Write(json);
}
}
}
[Serializable]
public struct RaceData
{
public float raceTimeSeconds;
public int place;
public RaceData(float raceTimeSeconds, int place)
{
this.raceTimeSeconds = raceTimeSeconds;
this.place = place;
}
}
}