Random Spawn, Random Prefab

Hey,
I have made 9 spawn-points in my game, and i want to randomly spawn 1 of 4 prefabs!
I don’t really know how to script it, that the code isn’t around 100 lines.
Can anyone help me?

THX lixpoxx

P.S.:It would also be very nice if you can tell me how to make it, that the spawner sends a new Prefab if the old is ca. 1 Coordinate away!

Create a public array of 9 Transforms (or whatever depending on your teleport), and public array of 4 prefebs (GameObject). Generate two random number, like this:

int teleport = Random.Range(0,8);
int prefeb = Random.Range(0,3);

Then spawn it using “Instantiate”: Unity - Scripting API: Object.Instantiate

Instantiate(gameobject_array[prefeb], teleport.position, teleport.rotation );

Save it, and add 9 transforms and 4 prefebs in inspector.

using UnityEngine;
using System.Collections;

public class spawner : MonoBehaviour {

// Use this for initialization
int m_CurrentSpawnCount=0,SpawnCount = 10;
public GameObject Enemy;
void Start () {
	StartCoroutine("delayCall");
}

// Update is called once per frame
IEnumerator  delayCall () {
	//if(m_CurrentSpawnCount <  SpawnCount)
	{

		for(int i = 0 ; i < 10 ; i++) // try 50 times. Brute force approach, randomly try to spawn and make sure its in the Spawnable zone. 
		{
			Vector3 position = transform.position + Random.insideUnitSphere * 100;
			position.y = this.transform.position.y;
			RaycastHit hitInfo;
			if(Physics.Raycast(position + new Vector3(0,1,0), Vector3.down,out hitInfo,10)&& hitInfo.collider.tag == "Spawnable")
			{

				Instantiate(Enemy,position,Quaternion.identity);
				yield return new WaitForSeconds(1);
				StartCoroutine("delayCall");
				break;
			}
		}
	}
}

}