public void OnGUI() { AssetStuff(); EditorGUILayout.Space(); XmlStuff(); EditorGUILayout.Space(); JsonUtilityStuff(); EditorGUILayout.Space(); var savePath = CreateSaveDataPath("SerializablePlayerDataDOTNET.json"); if (GUILayout.Button("Try Save JSON.NET")) { var sdata = new SimpleSerializableData(); sdata.health = 200f; sdata.name = "John"; sdata.inventory = new Dictionary <string, int>(); sdata.inventory["money"] = 150; sdata.inventory["arrows"] = 32; using (var streamWriter = new StreamWriter(savePath)) { streamWriter.Write(JsonConvert.SerializeObject(sdata)); } AssetDatabase.Refresh(); } }
private void XmlStuff() { var savePath = CreateSaveDataPath("SerializableData.xml"); if (GUILayout.Button("Try XML Serialize")) { var serializableData = new SimpleSerializableData(); serializableData.health = 200f; serializableData.name = "John"; var xmlSerializer = new XmlSerializer(typeof(SimpleSerializableData)); using (var streamWriter = new StreamWriter(savePath)) { xmlSerializer.Serialize(streamWriter, serializableData); } AssetDatabase.Refresh(); } if (GUILayout.Button("Try XML Deserialize")) { if (!File.Exists(savePath)) { EditorUtility.DisplayDialog("No scriptable object", "Please make sure the file exists", "OK"); } else { var xmlSerializer = new XmlSerializer(typeof(SimpleSerializableData)); using (var fileStream = new FileStream(savePath, FileMode.Open)) { var serializableData = (SimpleSerializableData)xmlSerializer.Deserialize(fileStream); var sb = new StringBuilder(); sb.AppendLine("health: " + serializableData.health); sb.AppendLine("name: " + serializableData.name); EditorUtility.DisplayDialog("Deserialized: ", sb.ToString(), "OK"); } } } }