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));
        }