Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
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;
        }
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    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;
        }
    }