Example #1
0
    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();
        }
    }
Example #2
0
    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");
                }
            }
        }
    }