private static float ReadAngle(QNetworkReader reader, CompressionSyncMode compression)
        {
            float result;

            if (compression != CompressionSyncMode.None)
            {
                if (compression != CompressionSyncMode.Low)
                {
                    if (compression != CompressionSyncMode.High)
                    {
                        result = 0f;
                    }
                    else
                    {
                        result = reader.ReadInt16();
                    }
                }
                else
                {
                    result = reader.ReadInt16();
                }
            }
            else
            {
                result = reader.ReadSingle();
            }
            return(result);
        }
示例#2
0
        private static float ReadAngle(NetworkReader reader, CompressionSyncMode compression)
        {
            switch (compression)
            {
            case CompressionSyncMode.None:
                return(reader.ReadSingle());

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

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

            default:
                return(0f);
            }
        }
示例#3
0
        private static void WriteAngle(NetworkWriter writer, float angle, CompressionSyncMode compression)
        {
            switch (compression)
            {
            case CompressionSyncMode.None:
                writer.Write(angle);
                break;

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

            case CompressionSyncMode.High:
                writer.Write((short)angle);
                break;
            }
        }
 private static void WriteAngle(QNetworkWriter writer, float angle, CompressionSyncMode compression)
 {
     if (compression != CompressionSyncMode.None)
     {
         if (compression != CompressionSyncMode.Low)
         {
             if (compression == CompressionSyncMode.High)
             {
                 writer.Write((short)angle);
             }
         }
         else
         {
             writer.Write((short)angle);
         }
     }
     else
     {
         writer.Write(angle);
     }
 }
        static float ReadAngle(NetworkReader reader, CompressionSyncMode compression)
        {
            switch (compression)
            {
            case CompressionSyncMode.None:
            {
                return(reader.ReadSingle());
            }

            case CompressionSyncMode.Low:
            {
                return(reader.ReadInt16());
            }

            case CompressionSyncMode.High:
            {
                return(reader.ReadInt16());
            }
            }
            return(0);
        }
        static public Quaternion UnserializeRotation3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Quaternion rotation = Quaternion.identity;
            Vector3    rotv     = Vector3.zero;

            switch (mode)
            {
            case AxisSyncMode.None:
                break;

            case AxisSyncMode.AxisX:
                rotv.Set(ReadAngle(reader, compression), 0, 0);
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisY:
                rotv.Set(0, ReadAngle(reader, compression), 0);
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisZ:
                rotv.Set(0, 0, ReadAngle(reader, compression));
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisXY:
                rotv.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), 0);
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisXZ:
                rotv.Set(ReadAngle(reader, compression), 0, ReadAngle(reader, compression));
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisYZ:
                rotv.Set(0, ReadAngle(reader, compression), ReadAngle(reader, compression));
                rotation.eulerAngles = rotv;
                break;

            case AxisSyncMode.AxisXYZ:
                rotv.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                rotation.eulerAngles = rotv;
                break;
            }
            return(rotation);
        }
        static public void SerializeRotation3D(NetworkWriter writer, Quaternion rot, AxisSyncMode mode, CompressionSyncMode compression)
        {
            switch (mode)
            {
            case AxisSyncMode.None:
                break;

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

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

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

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

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

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

            case AxisSyncMode.AxisXYZ:
                WriteAngle(writer, rot.eulerAngles.x, compression);
                WriteAngle(writer, rot.eulerAngles.y, compression);
                WriteAngle(writer, rot.eulerAngles.z, compression);
                break;
            }
        }
示例#8
0
        private static float ReadAngle(NetworkReader reader, CompressionSyncMode compression)
        {
            switch (compression)
            {
                case CompressionSyncMode.None:
                    return reader.ReadSingle();

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

                case CompressionSyncMode.High:
                    return (float) reader.ReadInt16();
            }
            return 0f;
        }
 private static float ReadAngle(NetworkReader reader, CompressionSyncMode compression)
 {
     if (compression != CompressionSyncMode.None)
     {
         if (compression == CompressionSyncMode.Low)
         {
             return (float) reader.ReadInt16();
         }
         if (compression == CompressionSyncMode.High)
         {
             return (float) reader.ReadInt16();
         }
     }
     else
     {
         return reader.ReadSingle();
     }
     return 0f;
 }
示例#10
0
        public static Vector3 UnserializeSpin3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Vector3 zero = Vector3.zero;
            switch (mode)
            {
                case AxisSyncMode.None:
                    return zero;

                case AxisSyncMode.AxisX:
                    zero.Set(ReadAngle(reader, compression), 0f, 0f);
                    return zero;

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

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

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

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

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

                case AxisSyncMode.AxisXYZ:
                    zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                    return zero;
            }
            return zero;
        }
示例#11
0
        public static void SerializeRotation3D(NetworkWriter writer, Quaternion rot, AxisSyncMode mode, CompressionSyncMode compression)
        {
            switch (mode)
            {
            case AxisSyncMode.None:
                break;

            case AxisSyncMode.AxisX:
            {
                Vector3 eulerAngles12 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles12.x, compression);
                break;
            }

            case AxisSyncMode.AxisY:
            {
                Vector3 eulerAngles11 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles11.y, compression);
                break;
            }

            case AxisSyncMode.AxisZ:
            {
                Vector3 eulerAngles10 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles10.z, compression);
                break;
            }

            case AxisSyncMode.AxisXY:
            {
                Vector3 eulerAngles8 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles8.x, compression);
                Vector3 eulerAngles9 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles9.y, compression);
                break;
            }

            case AxisSyncMode.AxisXZ:
            {
                Vector3 eulerAngles6 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles6.x, compression);
                Vector3 eulerAngles7 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles7.z, compression);
                break;
            }

            case AxisSyncMode.AxisYZ:
            {
                Vector3 eulerAngles4 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles4.y, compression);
                Vector3 eulerAngles5 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles5.z, compression);
                break;
            }

            case AxisSyncMode.AxisXYZ:
            {
                Vector3 eulerAngles = rot.eulerAngles;
                WriteAngle(writer, eulerAngles.x, compression);
                Vector3 eulerAngles2 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles2.y, compression);
                Vector3 eulerAngles3 = rot.eulerAngles;
                WriteAngle(writer, eulerAngles3.z, compression);
                break;
            }
            }
        }
示例#12
0
 public static float UnserializeRotation2D(NetworkReader reader, CompressionSyncMode compression)
 {
     return ReadAngle(reader, compression);
 }
示例#13
0
        public static Quaternion UnserializeRotation3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Quaternion identity = Quaternion.identity;
            Vector3 zero = Vector3.zero;
            switch (mode)
            {
                case AxisSyncMode.None:
                    return identity;

                case AxisSyncMode.AxisX:
                    zero.Set(ReadAngle(reader, compression), 0f, 0f);
                    identity.eulerAngles = zero;
                    return identity;

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

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

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

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

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

                case AxisSyncMode.AxisXYZ:
                    zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                    identity.eulerAngles = zero;
                    return identity;
            }
            return identity;
        }
示例#14
0
        public static void SerializeSpin3D(NetworkWriter writer, Vector3 angularVelocity, AxisSyncMode mode, CompressionSyncMode compression)
        {
            switch (mode)
            {
                case AxisSyncMode.AxisX:
                    WriteAngle(writer, angularVelocity.x, compression);
                    break;

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

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

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

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

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

                case AxisSyncMode.AxisXYZ:
                    WriteAngle(writer, angularVelocity.x, compression);
                    WriteAngle(writer, angularVelocity.y, compression);
                    WriteAngle(writer, angularVelocity.z, compression);
                    break;
            }
        }
示例#15
0
 public static void SerializeVelocity3D(NetworkWriter writer, Vector3 velocity, CompressionSyncMode compression)
 {
     writer.Write(velocity);
 }
示例#16
0
 public static void SerializeSpin2D(NetworkWriter writer, float angularVelocity, CompressionSyncMode compression)
 {
     WriteAngle(writer, angularVelocity, compression);
 }
示例#17
0
        public static void SerializeRotation3D(NetworkWriter writer, Quaternion rot, AxisSyncMode mode, CompressionSyncMode compression)
        {
            switch (mode)
            {
                case AxisSyncMode.AxisX:
                    WriteAngle(writer, rot.eulerAngles.x, compression);
                    break;

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

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

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

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

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

                case AxisSyncMode.AxisXYZ:
                    WriteAngle(writer, rot.eulerAngles.x, compression);
                    WriteAngle(writer, rot.eulerAngles.y, compression);
                    WriteAngle(writer, rot.eulerAngles.z, compression);
                    break;
            }
        }
示例#18
0
 public static void SerializeRotation2D(NetworkWriter writer, float rot, CompressionSyncMode compression)
 {
     WriteAngle(writer, rot, compression);
 }
示例#19
0
        static public Vector3 UnserializeSpin3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Vector3 spin = Vector3.zero;

            switch (mode)
            {
            case AxisSyncMode.None:
                break;

            case AxisSyncMode.AxisX:
                spin.Set(ReadAngle(reader, compression), 0, 0);
                break;

            case AxisSyncMode.AxisY:
                spin.Set(0, ReadAngle(reader, compression), 0);
                break;

            case AxisSyncMode.AxisZ:
                spin.Set(0, 0, ReadAngle(reader, compression));
                break;

            case AxisSyncMode.AxisXY:
                spin.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), 0);
                break;

            case AxisSyncMode.AxisXZ:
                spin.Set(ReadAngle(reader, compression), 0, ReadAngle(reader, compression));
                break;

            case AxisSyncMode.AxisYZ:
                spin.Set(0, ReadAngle(reader, compression), ReadAngle(reader, compression));
                break;

            case AxisSyncMode.AxisXYZ:
                spin.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                break;
            }
            return(spin);
        }
示例#20
0
        public static void SerializeSpin3D(NetworkWriter writer, Vector3 angularVelocity, AxisSyncMode mode, CompressionSyncMode compression)
        {
            switch (mode)
            {
            case AxisSyncMode.None:
                break;

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

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

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

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

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

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

            case AxisSyncMode.AxisXYZ:
                WriteAngle(writer, angularVelocity.x, compression);
                WriteAngle(writer, angularVelocity.y, compression);
                WriteAngle(writer, angularVelocity.z, compression);
                break;
            }
        }
示例#21
0
 public static Vector3 UnserializeVelocity3D(NetworkReader reader, CompressionSyncMode compression)
 {
     return reader.ReadVector3();
 }
示例#22
0
 public static Vector3 UnserializeVelocity2D(NetworkReader reader, CompressionSyncMode compression)
 {
     return(reader.ReadVector2());
 }
示例#23
0
 public static void SerializeVelocity2D(NetworkWriter writer, Vector2 velocity, CompressionSyncMode compression)
 {
     writer.Write(velocity);
 }
示例#24
0
        public static Vector3 UnserializeSpin3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Vector3 zero = Vector3.zero;

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

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

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

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

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

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

            case AxisSyncMode.AxisXYZ:
                zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                break;
            }
            return(zero);
        }
示例#25
0
 public static void SerializeRotation2D(NetworkWriter writer, float rot, CompressionSyncMode compression)
 {
     WriteAngle(writer, rot, compression);
 }
示例#26
0
        private static void WriteAngle(NetworkWriter writer, float angle, CompressionSyncMode compression)
        {
            switch (compression)
            {
                case CompressionSyncMode.None:
                    writer.Write(angle);
                    break;

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

                case CompressionSyncMode.High:
                    writer.Write((short) angle);
                    break;
            }
        }
示例#27
0
 public static void SerializeSpin2D(NetworkWriter writer, float angularVelocity, CompressionSyncMode compression)
 {
     WriteAngle(writer, angularVelocity, compression);
 }
 public static void SerializeVelocity3D(QNetworkWriter writer, Vector3 velocity, CompressionSyncMode compression) =>
 writer.Write(velocity);
示例#29
0
        public static Quaternion UnserializeRotation3D(NetworkReader reader, AxisSyncMode mode, CompressionSyncMode compression)
        {
            Quaternion identity = Quaternion.identity;
            Vector3    zero     = Vector3.zero;

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

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

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

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

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

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

            case AxisSyncMode.AxisXYZ:
                zero.Set(ReadAngle(reader, compression), ReadAngle(reader, compression), ReadAngle(reader, compression));
                identity.eulerAngles = zero;
                break;
            }
            return(identity);
        }
 public static Vector3 UnserializeVelocity3D(QNetworkReader reader, CompressionSyncMode compression) => reader.ReadVector3();
示例#31
0
 public static float UnserializeSpin2D(NetworkReader reader, CompressionSyncMode compression)
 {
     return(ReadAngle(reader, compression));
 }
 private static void WriteAngle(NetworkWriter writer, float angle, CompressionSyncMode compression)
 {
     if (compression != CompressionSyncMode.None)
     {
         if (compression == CompressionSyncMode.Low)
         {
             writer.Write((short) angle);
         }
         else if (compression == CompressionSyncMode.High)
         {
             writer.Write((short) angle);
         }
     }
     else
     {
         writer.Write(angle);
     }
 }