ok i will try and help with what your asking, im pretty experienced with unity but only usually code in java but can try be a bit of help. unity is really easy to work with and allows you to create stuff really quickly once you understand what your doing.
a lot of the functions unity provides are very similar to opengl, if you have used that in c++ it can help.
the unity scripting refrence here [link]http://unity3d.com/support/documentation/ScriptReference/index.html[/link]it has a list of all the fuctions that unity uses, i can tell you for moving blocks around you could just use the transform function to move blocks in the Y axis and increase the speed it falls over time.
for the dynamic object manager ive created a similar system for a random dungeon generator i made its in java but it could help understand what you need and if you search the functions i use on the scripting refrence it shouldnt be to hard to copy over.
Code:
var tile : Transform[];
Instantiate(tile[Random.Range(1,4)],transform.position,transform.rotation);//
what this does is stores each peice that i want to be created in and array and then depending on a random number it creates that numbered object in the array at the position of the object this code is attached to