- Home /
WWW Class does not work on IOS (But it works in the editor)
I'm trying to download an Asset Bundle through a link online, in the Unity Editor it works perfectly, it'll download the bundle and put it into the scene, although when I build the project and put it onto my iPhone, it'll download the model but it doesn't instantiate it.
IEnumerator down() {
print ("Start Download");
//Download from URL
var www = WWW.LoadFromCacheOrDownload(BundleURL,4);
//While the bundle is downloading...
while (!www.isDone) {
//Show percentage of download complete
tex = ((Mathf.Round(www.progress*100)).ToString())+"%";
if(tex == "0%") {
tex = "Loading...";
}
text.GetComponent<Text>().text = tex;
text2.GetComponent<Text>().text = tex;
text3.GetComponent<Text>().text = tex;
text4.GetComponent<Text>().text = tex;
text5.GetComponent<Text>().text = tex;
yield return 0;
}
//If Download failed, produce error
if (www.error != null)
throw new Exception ("WWW download had an error:" + www.error);
//Else if download successful, Instantiate it.
AssetBundle bundle = www.assetBundle;
if (AssetName == "")
tank = Instantiate (bundle.mainAsset) as GameObject;
else
tank = Instantiate (bundle.LoadAsset (AssetName)) as GameObject;
bundle.Unload(false);
//Interact with other GameObjects and tank's transform.
newobj.GetComponent<ContentManager> ().AugmentationObject = tank;
tank.transform.parent = obj.transform;
tank.transform.localScale = new Vector3 (1, 1, 1);
print ("Finished!!");
//Run TextFinished Code
StartCoroutine( TextFinished ());
}
This is the code I'm using, on mobile the download percentage will hit 100% and nothing else will happen. Then if I try to download it a second time it'll be stuck on 0% almost like it's trying to grab it from the cache.
For extra information, I'm using Vuforia's Cloud Recognition to download an asset based on the image it's viewing.
one thing:
yield return 0; should be yield return null;
another thing:
text.GetComponent().text = tex; ... I would cache those components before the while loop. Perhaps even in the Start() function of your script. If you use them only as Text, then declare them already as such like:
public Text text;
I found out what was wrong, Thanks for the advice though, it'll help!
Answer by Khozo · Apr 15, 2016 at 12:23 PM
The reason it didn't load is not because of the code, but the Asset Bundle itself, I built Windows/Mac versions of the Asset Bundles and not the IOS versions, I needed to build IOS versions of the Asset Bundles to make it instantiate on the IOS device.
Your answer
Follow this Question
Related Questions
3D model is not loading from url 1 Answer
How to use same material? 0 Answers
Loading AssetBundles from inside the Project 1 Answer
AssetBundle, problem whit the version 0 Answers