// Copyright (c) Pixel Crushers. All rights reserved.
using UnityEngine;
namespace PixelCrushers
{
///
/// Implementation of DataSerializer that uses JsonUtility.
///
[AddComponentMenu("")] // Use wrapper instead.
public class JsonDataSerializer : DataSerializer
{
[Tooltip("Use larger but more human-readable format.")]
[SerializeField]
private bool m_prettyPrint;
public bool prettyPrint
{
get { return m_prettyPrint; }
set { m_prettyPrint = value; }
}
public override string Serialize(object data)
{
return JsonUtility.ToJson(data, m_prettyPrint);
}
public override T Deserialize(string s, T data = default(T))
{
if (Equals(data, default(T)))
{
return JsonUtility.FromJson(s);
}
else
{
JsonUtility.FromJsonOverwrite(s, data);
return data;
}
}
}
}