Downloading File: no lines are ever executed

I am attempting to download a xml file and write it locally in my Unity3D Game(Target platform PC/Mac).

My Problem: The code to download the file never executes. I am unsure whats going wrong? The Debug.Log() commands inside the function downloadFile() are never output for some reason?

Important info:

  • The target platform is PC & Mac standalone
  • I am running the game through the Unity editor
  • I dont have Unity3D Pro - do I need it to run code/games that download files
  • Will this code work on Android/iOS target platforms or do I have to use native code to download &/or write a file to the platform/OS?

Can you tell me whats wrong with my code?

public static IEnumerator downloadFile(string url, string outFile)
{
	Debug.Log ("Start 1");
	bool res = false;
	WWW www  = new WWW(url); 
	Debug.Log ("Start 2");
	
    // wait until the download is done
    while(!www.isDone) {
        Debug.Log(www.progress);  
        yield return www; 
	}
	
	Debug.Log ("Start 3");
	if (www.isDone) {
		System.IO.File.WriteAllBytes(outFile, www.bytes);
		Debug.Log ("SUCCESS");
	}
	else Debug.Log ("FAIL");
}

// This code is in the function OnGUI()
if (GUI.Button (new Rect(620,0,100,20), "Download")) {
	Debug.Log ("PRESS 1");
	downloadFile("http://www.fileden.com/files/2011/10/6/3205286/HomePremium.zip",
		                                 "Assets/_TEST_FILES/_GENERATED/downloaded.xml");
	Debug.Log ("PRESS 2");
}

IEnumerator methods can’t be called directly you need to use the StartCoroutine method.

So just change the code in the function OnGUI to:

StartCoroutine(downloadFile("http://www.fileden.com/files/2011/10/6/3205286/HomePremium.zip", 
"Assets/_TEST_FILES/_GENERATED/downloaded.xml"));