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(); } }
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); } } }