- 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.