Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Vector3Converter : JsonConverter
- {
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- var vector = (Vector3)value;
- writer.WriteStartArray();
- writer.WriteValue(vector.x);
- writer.WriteValue(vector.y);
- writer.WriteValue(vector.z);
- writer.WriteEndArray();
- }
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- var val= new Vector3(reader.ReadAsFloat(), reader.ReadAsFloat(), reader.ReadAsFloat());
- while(reader.TokenType != JsonToken.EndArray)
- reader.Read();
- return val;
- }
- public override bool CanConvert(Type objectType) => objectType == typeof(Vector3);
- }
- public class QuaternionConverter : JsonConverter
- {
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- var vector = (Quaternion)value;
- writer.WriteStartArray();
- writer.WriteValue(vector.x);
- writer.WriteValue(vector.y);
- writer.WriteValue(vector.z);
- writer.WriteValue(vector.w);
- writer.WriteEndArray();
- }
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- var val= new Quaternion(reader.ReadAsFloat(), reader.ReadAsFloat(), reader.ReadAsFloat(),reader.ReadAsFloat());
- while(reader.TokenType != JsonToken.EndArray)
- reader.Read();
- return val;
- }
- public override bool CanConvert(Type objectType) => objectType == typeof(Quaternion);
- }
- public static class JsonExtensions
- {
- public static float ReadAsFloat(this JsonReader reader) => (float)(reader.ReadAsDecimal()).GetValueOrDefault();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement