Basic script create object after loading scene

I want to create a sphere after I load a scene. I have two scripts. One that calls the static function from another script to load the scene. After the scene loads, the sphere should be created, but it isn’t. Why is this?

Script 1 attached to an empty gameobject

using UnityEngine;
using System.Collections;

public class Script1 : MonoBehaviour {

	// Use this for initialization
	void Start () {
	Script2.loadScene();
	}
	
	
}

script2 attached to a gameobject name manager.

using UnityEngine;
using System.Collections;

public class Script2 : MonoBehaviour {

	// Use this for initialization
	void Awake () {
	DontDestroyOnLoad(transform);
	}
	
	
	public static void loadScene()
	{
	Application.LoadLevel("2");
	GameObject.CreatePrimitive(PrimitiveType.Sphere);
	}
	
}

I think the issue is that the primitive will get destroyed instantly after its creation.
Use a coroutine to check if your level is still loading…when its done create the sphere.

thanks your right! For some reason I thought Application.LoadLevel would halt all other code. Now for a question about Coroutines. Do I need to make sure to include a StopCoroutine like down below, otherwise the Coroutine will run forever checking to see if a scene is loading?Thanks again

using UnityEngine;
using System.Collections;

public class Script2 : MonoBehaviour {

	void Awake () {
	DontDestroyOnLoad(transform);
	StartCoroutine("loadScene");
	}
	
	IEnumerator loadScene (){
		Application.LoadLevel("2");
		while (Application.isLoadingLevel)
			{
		yield return null;
			}
		GameObject.CreatePrimitive(PrimitiveType.Sphere);
		StopCoroutine("loadScene");
	}
}

No once it reached the end of the routine its over.