public static InputCommand Deserialize(ref ComposedByteStream stream)
        {
            InputCommand result = new InputCommand();
            result.id = stream.ReadNextStream();
            float[] data = stream.ReadNextStream<float>();

            result.state = (HumanInputState)data[0];
            result.position.x = data[1];
            result.position.y = data[2];
            result.axis = data[3];
            return result;
        }
 protected static void DeserializeExposedObject(ref ComposedByteStream stream, ExposedObject storeTo)
 {
     storeTo.fieldName = stream.ReadNextStream();
     storeTo.typeName = stream.ReadNextStream();
     storeTo.isStruct = stream.ReadNextStream<byte>()[0] == byte.MaxValue;
     storeTo.primitiveMembers = SerializeSharedHelper.DeserializeStrings(stream.ReadNextStream<byte>());
     storeTo.objectMembers = ExposedObject.DeserializeArray(stream.ReadNextStream<byte>());
     storeTo.collectionMembers = ExposedCollection.Deserialize(stream.ReadNextStream<byte>());
     storeTo.unityObjectMembers = ExposedUnityObjectPointer.DeserializeArray(stream.ReadNextStream<byte>());
 }