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));
        }
        public override void Deserialize(byte[] data)
        {
            NetworkWriter writer = new NetworkWriter(data);

            Value = writer.ReadVector3();
        }