private void ParseData(UDPConnector udpSource)
        {
            OIMSG msg = udpSource.GetNewData();

            while (msg != null && msg.data != null && msg.data.Length > 0)
            {
                int packetID = -1;
                using (MemoryStream str = new MemoryStream(msg.data)) {
                    using (BinaryReader reader = new BinaryReader(str)) {
                        packetID = reader.ReadInt32();
                    }
                }

                if (packetID == 2)   // transform packet
                {
                    Vector3    pos;
                    Quaternion rot;
                    int        transformID;
                    TransformSerializer.Deserialize(msg.data, out transformID, out pos, out rot);

                    if (transformCopies.ContainsKey(transformID))
                    {
                        transformCopies[transformID].NewTransform(pos, rot);
                    }
                }
                msg = udpSource.GetNewData();
            }
        }
예제 #2
0
        void Update()
        {
            timer += Time.deltaTime;

            if (measuring)
            {
                continuousSendMeasure = false;
                positions.Add(transform.position);
                rotations.Add(transform.rotation);

                if (timer >= measureTime)
                {
                    measuring             = false;
                    continuousSendMeasure = true;

                    position = FilteredMeanPos(positions);
                    rotation = FilteredMeanRot(rotations);
                }
            }

            if (continuousSend)
            {
                if (timer >= sendInterval)
                {
                    timer = 0;
                    byte[] serialized = TransformSerializer.Serialize(transform, transformID);
                    connector.SendData(serialized);
                }
            }

            if (continuousSendMeasure)
            {
                if (timer >= sendInterval)
                {
                    timer = 0;
                    byte[] serialized = TransformSerializer.Serialize(position, rotation, transformID);
                    connector.SendData(serialized);
                }
            }
        }