I found in manual most of the time it is require to pass Tansform object to the first parameter of Instantiate.
i.e. in the manual
var cube : Transform;
function Start () {
for (var y = 0; y < 5; y++) {
for (var x = 0; x < 5; x++) {
var cube = Instantiate(cube, Vector3 (x, y, 0), Quaternion.identity);
}
}
}
Why I need to define the cube variable as Transform not GameObject?