private static float ReadAngle(P2PNetworkReader reader, ReplicatedTransform.CompressionSyncMode compression)
    {
        switch (compression)
        {
        case ReplicatedTransform.CompressionSyncMode.None:
            return(reader.ReadFloat());

        case ReplicatedTransform.CompressionSyncMode.Low:
            return((float)reader.ReadInt16());

        case ReplicatedTransform.CompressionSyncMode.High:
            return((float)reader.ReadInt16());

        default:
            return(0f);
        }
    }
    private static void WriteAngle(P2PNetworkWriter writer, float angle, ReplicatedTransform.CompressionSyncMode compression)
    {
        switch (compression)
        {
        case ReplicatedTransform.CompressionSyncMode.None:
            writer.Write(angle);
            return;

        case ReplicatedTransform.CompressionSyncMode.Low:
            writer.Write((short)angle);
            return;

        case ReplicatedTransform.CompressionSyncMode.High:
            writer.Write((short)angle);
            return;

        default:
            return;
        }
    }
 public static void SerializeVelocity2D(P2PNetworkWriter writer, Vector2 velocity, ReplicatedTransform.CompressionSyncMode compression)
 {
     writer.Write(velocity);
 }
 public static float UnserializeSpin2D(P2PNetworkReader reader, ReplicatedTransform.CompressionSyncMode compression)
 {
     return(ReplicatedTransform.ReadAngle(reader, compression));
 }
    public static Quaternion UnserializeRotation3D(P2PNetworkReader reader, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression)
    {
        Quaternion identity = Quaternion.identity;
        Vector3    zero     = Vector3.zero;

        switch (mode)
        {
        case ReplicatedTransform.AxisSyncMode.AxisX:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, 0f);
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisY:
            zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), 0f);
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisZ:
            zero.Set(0f, 0f, ReplicatedTransform.ReadAngle(reader, compression));
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXY:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), 0f);
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXZ:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, ReplicatedTransform.ReadAngle(reader, compression));
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisYZ:
            zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression));
            identity.eulerAngles = zero;
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXYZ:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression));
            identity.eulerAngles = zero;
            break;
        }
        return(identity);
    }
    public static Vector3 UnserializeSpin3D(P2PNetworkReader reader, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression)
    {
        Vector3 zero = Vector3.zero;

        switch (mode)
        {
        case ReplicatedTransform.AxisSyncMode.AxisX:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, 0f);
            break;

        case ReplicatedTransform.AxisSyncMode.AxisY:
            zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), 0f);
            break;

        case ReplicatedTransform.AxisSyncMode.AxisZ:
            zero.Set(0f, 0f, ReplicatedTransform.ReadAngle(reader, compression));
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXY:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), 0f);
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXZ:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, ReplicatedTransform.ReadAngle(reader, compression));
            break;

        case ReplicatedTransform.AxisSyncMode.AxisYZ:
            zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression));
            break;

        case ReplicatedTransform.AxisSyncMode.AxisXYZ:
            zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression));
            break;
        }
        return(zero);
    }
 public static Vector3 UnserializeVelocity2D(P2PNetworkReader reader, ReplicatedTransform.CompressionSyncMode compression)
 {
     return(reader.ReadVector2());
 }
 public static void SerializeSpin2D(P2PNetworkWriter writer, float angularVelocity, ReplicatedTransform.CompressionSyncMode compression)
 {
     ReplicatedTransform.WriteAngle(writer, angularVelocity, compression);
 }
    public static void SerializeSpin3D(P2PNetworkWriter writer, Vector3 angularVelocity, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression)
    {
        switch (mode)
        {
        case ReplicatedTransform.AxisSyncMode.None:
            break;

        case ReplicatedTransform.AxisSyncMode.AxisX:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisY:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisZ:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXY:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression);
            ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXZ:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression);
            ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisYZ:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression);
            ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXYZ:
            ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression);
            ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression);
            ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression);
            break;

        default:
            return;
        }
    }
예제 #10
0
 public static void SerializeRotation2D(P2PNetworkWriter writer, float rot, ReplicatedTransform.CompressionSyncMode compression)
 {
     ReplicatedTransform.WriteAngle(writer, rot, compression);
 }
예제 #11
0
    public static void SerializeRotation3D(P2PNetworkWriter writer, Quaternion rot, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression)
    {
        switch (mode)
        {
        case ReplicatedTransform.AxisSyncMode.None:
            break;

        case ReplicatedTransform.AxisSyncMode.AxisX:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisY:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisZ:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXY:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression);
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXZ:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression);
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisYZ:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression);
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression);
            return;

        case ReplicatedTransform.AxisSyncMode.AxisXYZ:
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression);
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression);
            ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression);
            break;

        default:
            return;
        }
    }