1
This commit is contained in:
81
Src/NetSupport/MathematicsSupport.cs
Normal file
81
Src/NetSupport/MathematicsSupport.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using Unity.Mathematics;
|
||||
|
||||
#if NET5_0_OR_GREATER
|
||||
namespace BITKit
|
||||
{
|
||||
public class Float2JsonConvertJsonConverter:JsonConverter<float2>
|
||||
{
|
||||
public override void WriteJson(JsonWriter writer, float2 value, JsonSerializer serializer)
|
||||
{
|
||||
writer.WriteStartObject();
|
||||
|
||||
writer.WritePropertyName(nameof(value.x));
|
||||
writer.WriteValue((double)value.x);
|
||||
|
||||
writer.WritePropertyName(nameof(value.y));
|
||||
writer.WriteValue((double)value.y);
|
||||
|
||||
writer.WriteEndObject();
|
||||
}
|
||||
|
||||
public override float2 ReadJson(JsonReader reader, Type objectType, float2 existingValue, bool hasExistingValue,
|
||||
JsonSerializer serializer)
|
||||
{
|
||||
var result = float2.zero;
|
||||
|
||||
while (reader.TokenType != JsonToken.EndObject) {
|
||||
reader.Read();
|
||||
if (reader.TokenType != JsonToken.PropertyName) continue;
|
||||
|
||||
var property = reader.Value;
|
||||
if (property is nameof(float2.x)) result.x = (float)reader.ReadAsDouble()!;
|
||||
if (property is nameof(float2.y)) result.y = (float)reader.ReadAsDouble()!;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public class Float4JsonConvertJsonConverter:JsonConverter<float4>
|
||||
{
|
||||
public override void WriteJson(JsonWriter writer, float4 value, JsonSerializer serializer)
|
||||
{
|
||||
writer.WriteStartObject();
|
||||
|
||||
writer.WritePropertyName(nameof(value.x));
|
||||
writer.WriteValue((double)value.x);
|
||||
|
||||
writer.WritePropertyName(nameof(value.y));
|
||||
writer.WriteValue((double)value.y);
|
||||
|
||||
writer.WritePropertyName(nameof(value.z));
|
||||
writer.WriteValue((double)value.z);
|
||||
|
||||
writer.WritePropertyName(nameof(value.w));
|
||||
writer.WriteValue((double)value.w);
|
||||
|
||||
writer.WriteEndObject();
|
||||
}
|
||||
|
||||
public override float4 ReadJson(JsonReader reader, Type objectType, float4 existingValue, bool hasExistingValue,
|
||||
JsonSerializer serializer)
|
||||
{
|
||||
var result = float4.zero;
|
||||
|
||||
while (reader.TokenType != JsonToken.EndObject) {
|
||||
reader.Read();
|
||||
if (reader.TokenType != JsonToken.PropertyName) continue;
|
||||
|
||||
var property = reader.Value;
|
||||
if (property is nameof(float4.x)) result.x = (float)reader.ReadAsDouble()!;
|
||||
if (property is nameof(float4.y)) result.y = (float)reader.ReadAsDouble()!;
|
||||
if (property is nameof(float4.z)) result.z = (float)reader.ReadAsDouble()!;
|
||||
if (property is nameof(float4.w)) result.w = (float)reader.ReadAsDouble()!;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
11
Src/NetSupport/MathematicsSupport.cs.meta
Normal file
11
Src/NetSupport/MathematicsSupport.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63ffbc9c0b6af6e41b872d6588ac165c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user