3using Newtonsoft.Json.Serialization;
4using Newtonsoft.Json.Linq;
5using System.Reflection;
13 public override void WriteJson(JsonWriter writer,
object value, JsonSerializer serializer)
15 JObject o =
new JObject();
17 o.Add(
"$type", value.GetType().AssemblyQualifiedName);
34 o.WriteTo(writer, serializer.Converters.ToArray());
37 public override object ReadJson(JsonReader reader, Type objectType,
object existingValue, JsonSerializer serializer)
39 JObject o = JObject.Load(reader);
41 if(typeof(
UnityEngine.Color32).IsAssignableFrom(objectType))
43 return new Color32( (
byte) o.GetValue(
"r"),
44 (
byte) o.GetValue(
"g"),
45 (
byte) o.GetValue(
"b"),
46 (
byte) o.GetValue(
"a"));
50 return new Color( (
float) o.GetValue(
"r"),
51 (
float) o.GetValue(
"g"),
52 (
float) o.GetValue(
"b"),
53 (
float) o.GetValue(
"a"));
59 return typeof(
UnityEngine.Color).IsAssignableFrom(objectType);
override bool CanConvert(Type objectType)
override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)