- Home /
Question by
karthees · Sep 07, 2014 at 03:47 AM ·
assetbundlewwwvuforiajson
3D model is not loading from url
I'm developing vufori + unity app. I have json values in server and url contains 3D model..I'm fetching the url and assigning to load 3D. But the 3D is not getting. I'm using AssetBundle to load 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");
Debug.Log("url value is " + url );
// 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);
}
*/
}
IEnumerator GetAssetBundle ()
{
www = new WWW(url);
yield return www;
Debug.Log("The last BundleURL " + url );
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;
}
cloudreco.jpg
(127.8 kB)
Comment
Answer by misher · Feb 07, 2019 at 10:36 AM
First, you should debug your code to know what exactly happens and where is the problem.
Use UnityWebRequest instead of WWW (it is deprecated) https://docs.unity3d.com/Manual/UnityWebRequest-DownloadingAssetBundle.html