- Home /
Loading AssetBundles from inside the Project
I'm using the following script that loads an AssetBundle and attaches it to a tracker.
 using UnityEngine;
 using System.Collections;
 
 public class AssetBundleAugmenter : MonoBehaviour, ITrackableEventHandler {
    
     public string AssetName;
      public string BundleURL;
     private GameObject mBundleInstance = null;
     private TrackableBehaviour mTrackableBehaviour; 
     private bool mAttached = false;
 
      IEnumerator Start(){
         //StartCoroutine (DownloadAndCache());
         
         mTrackableBehaviour = GetComponent<TrackableBehaviour>();
         if (mTrackableBehaviour) {
             mTrackableBehaviour.RegisterTrackableEventHandler(this);
         }
        using (WWW www = new WWW(BundleURL)){
            yield return www;
           
        if (www .error != null)
            throw new UnityException("WWW Download had an error: " + www. error);
         
       AssetBundle bundle = www.assetBundle;
        if (AssetName == "Cube1.unity3d") {
           mBundleInstance = Instantiate (bundle.mainAsset) as GameObject;
             //Unload the AssetBundle so it can be reloaded on return
         bundle.Unload(false);
             }
         }
     }        
     public void OnTrackableStateChanged(
         TrackableBehaviour.Status previousStatus,
         TrackableBehaviour.Status newStatus) {
          
         if (newStatus == TrackableBehaviour.Status.DETECTED ||
             newStatus == TrackableBehaviour.Status.TRACKED ){
            // newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) {
  
             if (!mAttached && mBundleInstance) {
                 // if bundle has been loaded, let's attach it to this trackable
                 mBundleInstance.transform.parent = this.transform;
                 mBundleInstance.transform.localScale = new Vector3(0.1982961f, 0.1982961f, 0.1982961f);
                 mBundleInstance.transform.localPosition = new Vector3(0f, 0.1025115f, 0f);
                 mBundleInstance.transform.gameObject.SetActive(true); 
                 mAttached = true;        
             }
         }
     }
 }
 
In the Inspector, the File path/ URL is inserted. All is good thus far.
However, what I want to achieve is to have the AssetBundle within the project, built-in, and loaded from there; rather than from an external source. Is it just a case of inserting a different file path or does it require additional coding?
I had a look at AssetBundle.Load(); but that seems to be loading something specifically from the AssetBundle rather than the whole bundle itself. Any ideas?
Thanks in advance
Answer by hollym16 · Sep 26, 2014 at 01:32 PM
string BundleURL = "jar:file://" + Application.streamingAssetsPath + "/PACKAGE_NAME.unity3d";
I need some help for Assetbundle in vuforia app. Please help on this http://answers.unity3d.com/questions/803778/display-3d-from-url.html.
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                