コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
        }