The procedural generation is made by tracking the player's movement along the x axis and spawning a new piece in front of it every time it moves 10 unity units. Additionally it has to track where on the y axis to spawn the piece, this is done by adding an offset to the spawn location, for example if the previous piece went upwards then it would add to the offset and the next piece would spawn further up on the y axis, same for if the piece went down, it would subtract from the offset. Hope that makes sense, I can send you the code in an email if you would like to see it. Thanks for the feedback.