public override bool Serialize(Archive archive, ISerializableObjectReferenceCollector collector, ref object field, object lastFieldState) { QuantizedVector3Field value = (QuantizedVector3Field)field; if (archive.isLoading) { IntMath.Vector3i q = new IntMath.Vector3i( archive.ReadSignedBits(value.FX.NUM_BITS), archive.ReadSignedBits(value.FY.NUM_BITS), archive.ReadSignedBits(value.FZ.NUM_BITS)); value.quantizedValue = q; } else { IntMath.Vector3i q = value.quantizedValue; archive.WriteSignedBits(q.x, value.FX.NUM_BITS); archive.WriteSignedBits(q.y, value.FY.NUM_BITS); archive.WriteSignedBits(q.z, value.FZ.NUM_BITS); } field = value; return archive.isLoading; }
public QuantizedVector3Field(QuantizedVector3Field q) { _value = q._value; FX = q.FX; FY = q.FY; FZ = q.FZ; }