I’d say, have an array that stores the location of each block, and then translate that to the screen. Here’s a really simplistic example…make a new project, and make an empty game object, then put this script on the empty (call it “Manager”):
static var field : int[];
static var canSpawn : boolean;
var cube : GameObject;
function Start() {
canSpawn = true;
field = new int[10];
field[0] = 1;
InvokeRepeating("SpawnCube", .1, 2);
}
function SpawnCube() {
if (canSpawn) {
Instantiate(cube, Vector3(0, 10, 0), Quaternion.identity);
}
}
Make a cube, put this script on the cube (doesn’t matter what you call it):
var fallSpeed : float = 2;
private var yLocation = 9;
function Start() {
if (Manager.field[yLocation] == 1) {GameOver();}
Manager.field[yLocation] = 1;
while (Manager.canSpawn) {
// Go down a "square" if there's nothing immediately below in the array
if (Manager.field[yLocation-1] == 0) {yield Fall();}
else {yield;}
}
}
function Fall() {
// Make cube "fall down" 1 location in array
Manager.field[yLocation--] = 0;
Manager.field[yLocation] = 1;
// Make cube fall down 1 "square" on-screen
for (var i : float = yLocation + 1; i > yLocation; i -= Time.deltaTime*fallSpeed) {
transform.position.y = i+1;
yield;
}
transform.position.y = yLocation+1; // Just to make it exactly perfect
}
function OnMouseDown() {
Manager.field[yLocation] = 0;
Destroy(gameObject);
}
function GameOver() {
print ("Game Over!");
Manager.canSpawn = false;
}
Make a prefab, and drag that cube onto the prefab, then get rid of the cube. Click on the empty game object with the manager script, and drag the prefab onto the “Cube” slot. Put the camera at about 6 on the y axis, add a directional light if you want, then run the game. Cubes will spawn at the top of the screen every couple of seconds and fall down. If you click on a cube, it disappears, and any cubes that might have been on top will fall down. If the stack of cubes fills to the top of the screen, oh no! Game over! 
For “real” Tetris, you’d use a 2-dimensional array, but the basic principle would be the same. You’d just have to check several locations “below” in the array, depending on the shape and orientation of the piece. You could of course then expand that to full 3D Tetris, with a 3-dimensional array.
–Eric