- Home /
Question by
karthees · Sep 08, 2014 at 09:33 AM ·
gameobjectassetbundlewwwvuforia
NullReferenceException: Object reference not set to an instance of an object SimpleCloudHandler+c__Iterator4.MoveNext ()
I'm doing vuforia + unity app. I have 3D model in server url then parsing the url loading to app. I'm using AssetBundle and www format to display the 3D model from url.
// Here we handle a cloud target recognition event
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) {
// do something with the target metadata
mTargetMetadata = targetSearchResult.MetaData;
JSONObject json = JSONObject.Parse(mTargetMetadata);
string type=json.GetString("type");
url=json.GetString("overlay3d");
// stop the target finder (i.e. stop scanning the cloud)
mCloudRecoBehaviour.CloudRecoEnabled = false;
mShowGUIButton = true;
GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;
GameObject augmentation = null;
if( augmentation != null )
augmentation.transform.parent = newImageTarget.transform;
// enable the new result with the same ImageTargetBehaviour:
// ImageTargetBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);
//StartCoroutine(GetAssetBundle());
Debug.Log("Metadata value is " + url );
StartCoroutine(GetAssetBundle());
// Build augmentation based on target
if (ImageTargetTemplate) {
// enable the new result with the same ImageTargetBehaviour:
ImageTracker tracker = TrackerManager.Instance.GetTracker<ImageTracker>();
ImageTargetBehaviour imageTargetBehaviour =
(ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(
targetSearchResult, ImageTargetTemplate.gameObject);
}
/*
// str=modelName;
using (WWW www = new WWW(url)) {
AssetBundle bundle = www.assetBundle;
g=Instantiate(bundle.mainAsset,new Vector3(0,0,0),Quaternion.identity) as GameObject;
g.transform.localScale=new Vector3(0.136500f,0.136500f,0.136500f);
}
*/
GUI.Label(new Rect(10, 10, 300, 70), "Path: " + url);
if (GUI.Button(new Rect(100,300,200,50), "Path: " + url)) {
// Restart TargetFinder
mCloudRecoBehaviour.CloudRecoEnabled = true;
}
}
IEnumerator GetAssetBundle ()
{
www = new WWW(url);
yield return www;
Debug.Log("The last BundleURL " + BundleURL );
AssetBundleRequest request = www.assetBundle.LoadAsync("modelipad", typeof(GameObject));
yield return request;
Instantiate(request.asset, new Vector3(0f, 0f, 0f), Quaternion.identity);
//Put the stream model under the image target
GameObject ImageTargetUsed = GameObject.Find("ImageTarget");
GameObject ModelIpadClone = GameObject.Find("modelipad(Clone)");
ModelIpadClone.transform.parent = ImageTargetUsed.transform;
}
Comment
Your answer
Follow this Question
Related Questions
WWW Class does not work on IOS (But it works in the editor) 1 Answer
3D model is not loading from url 1 Answer
Display 3D from url 0 Answers
Loading AssetBundles from inside the Project 1 Answer
Download assetBundle from server 2 Answers