Need help. Trying to build an infiniate runner script, but getting errors. Please hel

Here is the script I have that is giving me errors. I guessing that GetLength is not working, but I dont understand why not.

using UnityEngine;
using System.Collections;

public class SpawnScript : MonoBehaviour {

	public GameObject[] obj;
	public float spawnMin = 1f;
	public float spawnMax = 2f;


	// Use this for initialization
	void Start () {
		Spawn ();
	
	}
	
	// Update is called once per frame
	void Spawn () {

		//// Script Wont Get Length, What am I doing wrong ///
		Instantiate (obj[Random.Range (0, obj.GetLength(0))], transform.position, Quaternion.identity);
		Invoke("Spawn",  Random.Range (spawnMin, spawnMax));
		//// Script Wont Get Length, What am I doing wrong ///
		
	}
}

Did you assign something to obj in the inspector?

Yes, Its is actually getting using GetLength right I seen, and also spawning the prefabs it seems, but they are overlapping or something. Its not assigning there current position to make sure the next ones are out past them