public void ReadData(byte[] data) { NetworkWriter writer = new NetworkWriter(data); Time = writer.ReadSingle(); int count = writer.ReadInt16(); for (int i = 0; i < count; i++) { InputTypeBase input = (InputTypeBase)Activator.CreateInstance(m_ExpectedInputs[i]); int bCount = writer.ReadInt16(); input.Deserialize(writer.ReadBytes(bCount)); Inputs.Add(input); } int simCount = writer.ReadInt16(); for (int i = 0; i < simCount; i++) { float time = writer.ReadSingle(); InputData input = new InputData(time) { Inputs = this.Inputs }; Similar.Add(input); } }
private void ReceiveState(NetworkWriter writer) { if (m_EntityStateQueue == null) { m_EntityStateQueue = new Queue <EntityState>(); } Vector3 pos = Vector3.zero; Quaternion rot = Quaternion.identity; if (m_SynchronizePosition) { pos = writer.ReadVector3(); } if (m_SynchronizeRotation) { Vector3 xyz = writer.ReadVector3(); float w = writer.ReadSingle(); rot = new Quaternion(xyz.x, xyz.y, xyz.z, w); } m_EntityStateQueue.Enqueue(new EntityState(pos, rot)); }