PlayerData
This commit is contained in:
1 parent
ca3994de2e
commit
0d3fb5071a
5 files changed
+79
-28
No files matched your search
@@ -12,12 +12,7 @@ using UnityEngine.UIElements;
|
||||
|
||||
using SpaceRace.Shared;
|
||||
|
||||
public class PlayerData {
|
||||
public Guid Id;
|
||||
}
|
||||
|
||||
public class LapService {
|
||||
static string playerDataPath = Path.Combine(Application.persistentDataPath, "playerData.json");
|
||||
string _mapName;
|
||||
PlayerData _player;
|
||||
PbDTO _pb;
|
||||
@@ -38,7 +33,7 @@ public class LapService {
|
||||
|
||||
public LapService(string mapName) {
|
||||
_mapName = mapName;
|
||||
LoadPlayerData();
|
||||
_player = PlayerDataService.Load();
|
||||
}
|
||||
|
||||
public IEnumerator GetLapTimes() {
|
||||
@@ -107,22 +102,4 @@ public class LapService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LoadPlayerData() {
|
||||
try {
|
||||
string json = File.ReadAllText(playerDataPath);
|
||||
_player = JsonConvert.DeserializeObject<PlayerData>(json);
|
||||
Debug.Log($"Loaded player data {json}");
|
||||
} catch {
|
||||
Debug.Log("No existing playerData.json");
|
||||
CreatePlayerData();
|
||||
}
|
||||
}
|
||||
|
||||
PlayerData CreatePlayerData() {
|
||||
_player = new PlayerData { Id = Guid.NewGuid() };
|
||||
Debug.Log(JsonConvert.SerializeObject(_player));
|
||||
File.WriteAllText(playerDataPath, JsonConvert.SerializeObject(_player));
|
||||
return _player;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class PlayerData {
|
||||
public PlayerSettings Settings = new();
|
||||
public Guid Id = Guid.NewGuid();
|
||||
}
|
||||
|
||||
public class PlayerSettings {
|
||||
public float ViewSens = 1.0f;
|
||||
public bool InvertY = false;
|
||||
}
|
||||
|
||||
public static class PlayerDataService {
|
||||
static string storagePath = Path.Combine(Application.persistentDataPath, "playerData.json");
|
||||
|
||||
static PlayerDataService() {
|
||||
Load();
|
||||
}
|
||||
|
||||
public static PlayerData Persist(PlayerData data) {
|
||||
Debug.Log(JsonConvert.SerializeObject(data));
|
||||
File.WriteAllText(storagePath, JsonConvert.SerializeObject(data));
|
||||
return data;
|
||||
}
|
||||
|
||||
public static PlayerData Create() {
|
||||
PlayerData data = new PlayerData { Id = Guid.NewGuid() };
|
||||
return Persist(data);
|
||||
}
|
||||
|
||||
public static PlayerData Load() {
|
||||
try {
|
||||
string json = File.ReadAllText(storagePath);
|
||||
PlayerData data = JsonConvert.DeserializeObject<PlayerData>(json);
|
||||
Debug.Log($"Loaded player data {json}");
|
||||
|
||||
if (data.Settings == null) data.Settings = new();
|
||||
|
||||
return Persist(data);
|
||||
} catch {
|
||||
Debug.Log("No existing playerData.json");
|
||||
return Create();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4d8c1d0642edd2b18f5c5ff237f80c1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -27,6 +27,8 @@ public class MenuControls : MonoBehaviour {
|
||||
|
||||
SpaceRaceInput input;
|
||||
|
||||
PlayerData _player;
|
||||
|
||||
Toggle invertYToggle;
|
||||
Slider viewSensSlider;
|
||||
Label viewSensLabel;
|
||||
@@ -45,6 +47,8 @@ public class MenuControls : MonoBehaviour {
|
||||
return;
|
||||
}
|
||||
|
||||
_player = PlayerDataService.Load();
|
||||
|
||||
SetupActions();
|
||||
Hide();
|
||||
}
|
||||
@@ -118,12 +122,24 @@ public class MenuControls : MonoBehaviour {
|
||||
viewSensSlider = menuDoc.rootVisualElement.Q<Slider>("viewSens");
|
||||
viewSensLabel = menuDoc.rootVisualElement.Q<Label>("viewSensLabel");
|
||||
|
||||
viewSensSlider.value = _player.Settings.ViewSens;
|
||||
invertYToggle.value = _player.Settings.InvertY;
|
||||
|
||||
viewSensLabel.text = $"{viewSensSlider.value:0.00}";
|
||||
|
||||
invertYToggle.RegisterValueChangedCallback(evt => shipControls.InvertY = evt.newValue);
|
||||
invertYToggle.RegisterValueChangedCallback(evt => {
|
||||
_player.Settings.InvertY = evt.newValue;
|
||||
shipControls.InvertY = evt.newValue;
|
||||
|
||||
PlayerDataService.Persist(_player);
|
||||
});
|
||||
|
||||
viewSensSlider.RegisterValueChangedCallback(evt => {
|
||||
shipControls.ViewSens = evt.newValue;
|
||||
_player.Settings.ViewSens = evt.newValue;
|
||||
viewSensLabel.text = $"{evt.newValue:0.00}";
|
||||
|
||||
PlayerDataService.Persist(_player);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user