public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (objectType == VectorConverter.V2) { return(VectorConverter.PopulateVector2(reader)); } if (objectType == VectorConverter.V3) { return(VectorConverter.PopulateVector3(reader)); } return(VectorConverter.PopulateVector4(reader)); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { float?nullable; if (value == null) { writer.WriteNull(); return; } Type type = value.GetType(); if (type == VectorConverter.V2) { Vector2 vector2 = (Vector2)value; nullable = null; float?nullable1 = nullable; nullable = null; VectorConverter.WriteVector(writer, vector2.x, vector2.y, nullable1, nullable); return; } if (type == VectorConverter.V3) { Vector3 vector3 = (Vector3)value; nullable = null; VectorConverter.WriteVector(writer, vector3.x, vector3.y, new float?(vector3.z), nullable); return; } if (type != VectorConverter.V4) { writer.WriteNull(); return; } Vector4 vector4 = (Vector4)value; VectorConverter.WriteVector(writer, vector4.x, vector4.y, new float?(vector4.z), new float?(vector4.w)); }