public static Overrides FromJSON(string json) { Serializeable serializeable = JsonUtility.FromJson <Serializeable>(json); if (serializeable.keys == null || serializeable.values == null) { return(new Overrides()); } if (serializeable.keys.Length != serializeable.values.Length) { Debug.LogError("Corrupt keybind dictionary! Key and Value count don't match! Falling back to empty!"); return(new Overrides()); } Overrides overrides = new Overrides(); for (int i = 0; i < serializeable.keys.Length; i++) { if (System.Guid.TryParse(serializeable.keys[i], out System.Guid guid)) { overrides.Add(guid, serializeable.values[i]); } else { Debug.LogWarning($"Failed to parse guid: {serializeable.keys[i]}, mapped to {serializeable.values[i]}. Resetting to default!"); } } return(overrides); }
public string ToJSON() { Serializeable serializeable = new Serializeable() { keys = Keys.Select((x) => x.ToString()).ToArray(), values = Values.ToArray(), }; return(JsonUtility.ToJson(serializeable)); }