Files
PrinceOfGlory/Packages/jillejr.newtonsoft.json-for-unity.converters/UnityConverters/Physics/JointLimitsConverter.cs
2026-03-03 03:15:46 +08:00

47 lines
1.8 KiB
C#

#if HAVE_MODULE_PHYSICS || !UNITY_2019_1_OR_NEWER
using Newtonsoft.Json.UnityConverters.Helpers;
using UnityEngine;
namespace Newtonsoft.Json.UnityConverters.Physics
{
public class JointLimitsConverter : PartialConverter<JointLimits>
{
protected override void ReadValue(ref JointLimits value, string name, JsonReader reader, JsonSerializer serializer)
{
switch (name)
{
case nameof(value.min):
value.min = reader.ReadAsFloat() ?? 0f;
break;
case nameof(value.max):
value.max = reader.ReadAsFloat() ?? 0f;
break;
case nameof(value.bounciness):
value.bounciness = reader.ReadAsFloat() ?? 0f;
break;
case nameof(value.bounceMinVelocity):
value.bounceMinVelocity = reader.ReadAsFloat() ?? 0f;
break;
case nameof(value.contactDistance):
value.contactDistance = reader.ReadAsFloat() ?? 0f;
break;
}
}
protected override void WriteJsonProperties(JsonWriter writer, JointLimits value, JsonSerializer serializer)
{
writer.WritePropertyName(nameof(value.min));
writer.WriteValue(value.min);
writer.WritePropertyName(nameof(value.max));
writer.WriteValue(value.max);
writer.WritePropertyName(nameof(value.bounciness));
writer.WriteValue(value.bounciness);
writer.WritePropertyName(nameof(value.bounceMinVelocity));
writer.WriteValue(value.bounceMinVelocity);
writer.WritePropertyName(nameof(value.contactDistance));
writer.WriteValue(value.contactDistance);
}
}
}
#endif