Created
April 18, 2013 07:30
-
-
Save yaeda/5410868 to your computer and use it in GitHub Desktop.
Unity AssetBundle Examples.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using UnityEngine; | |
using System.Collections; | |
public class AssetBundleSample : MonoBehaviour { | |
public GUIText guitext; | |
// Use this for initialization | |
void Start () { | |
// Clear Cache | |
Caching.CleanCache(); | |
string loadUrl = "https://dl.dropboxusercontent.com/u/172835/track"; | |
#if UNITY_ANDROID && !UNITY_EDITOR | |
loadUrl += ".android.unity3d"; | |
#elif UNITY_IPHONE && !UNITY_EDITOR | |
loadUrl += ".iphone.unity3d"; | |
#else | |
loadUrl += ".unity3d"; | |
#endif | |
StartCoroutine(load(loadUrl, 1)); | |
} | |
// Update is called once per frame | |
void Update () { | |
// progress | |
int percent = (int)(www.progress * 100); | |
guitext.text = percent.ToString() + "%"; | |
} | |
private WWW www; | |
private IEnumerator load(string url, int version) { | |
// wait for the caching system to be ready | |
while (!Caching.ready) | |
yield return null; | |
// load AssetBundle file from Cache if it exists with the same version or download and store it in the cache | |
www = WWW.LoadFromCacheOrDownload(url, version); | |
yield return www; | |
Debug.Log("Loaded "); | |
if (www.error != null) | |
throw new Exception("WWW download had an error: " + www.error); | |
AssetBundle assetBundle = www.assetBundle; | |
Instantiate(assetBundle.mainAsset); // Instantiate(assetBundle.Load("AssetName")); | |
// Unload the AssetBundles compressed contents to conserve memory | |
assetBundle.Unload(false); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Builds an asset bundle from the selected objects in the project view. | |
// Once compiled go to "Menu" -> "Assets" and select one of the choices | |
// to build the Asset Bundle | |
using UnityEngine; | |
using UnityEditor; | |
public class ExportAssetBundles { | |
[MenuItem("Assets/Build AssetBundle From Selection - Track dependencies")] | |
static void ExportResurce() { | |
// Bring up save panel | |
string basename = Selection.activeObject ? Selection.activeObject.name : "New Resource"; | |
string path = EditorUtility.SaveFilePanel("Save Resources", "", basename, ""); | |
if (path.Length != 0) { | |
// Build the resource file from the active selection. | |
Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); | |
// for Android | |
BuildPipeline.BuildAssetBundle(Selection.activeObject, | |
selection, path + ".android.unity3d", | |
BuildAssetBundleOptions.CollectDependencies | | |
BuildAssetBundleOptions.CompleteAssets, | |
BuildTarget.Android); | |
// for iPhone | |
BuildPipeline.BuildAssetBundle(Selection.activeObject, | |
selection, path + ".iphone.unity3d", | |
BuildAssetBundleOptions.CollectDependencies | | |
BuildAssetBundleOptions.CompleteAssets, | |
BuildTarget.iPhone); | |
// for WebPlayer | |
BuildPipeline.BuildAssetBundle(Selection.activeObject, | |
selection, path + ".unity3d", | |
BuildAssetBundleOptions.CollectDependencies | | |
BuildAssetBundleOptions.CompleteAssets, | |
BuildTarget.WebPlayer); | |
Selection.objects = selection; | |
} | |
} | |
// [MenuItem("Assets/Build AssetBundle From Selection - Track dependencies")] | |
// static void ExportResource() { | |
// // Bring up save panel | |
// string path = EditorUtility.SaveFilePanel("Save Resources", "", "New Resource", "unity3d"); | |
// if (path.Length != 0) { | |
// // Build the resource file from the active selection. | |
// Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); | |
// BuildPipeline.BuildAssetBundle(Selection.activeObject, | |
// selection, | |
// path, | |
// BuildAssetBundleOptions.CollectDependencies | | |
// BuildAssetBundleOptions.CompleteAssets); | |
// Selection.objects = selection; | |
// } | |
// } | |
// [MenuItem("Assets/Build AssetBundle From Selection - No dependency tracking")] | |
// static void ExportResourceNoTrack() { | |
// // Bring up save panel | |
// string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d"); | |
// if (path.Length != 0) { | |
// // Build the resource file from the active selection. | |
// BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path); | |
// } | |
// } | |
} |
What is the procedure to export AssetBundle? And How to call AssetBundleSample.cs
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I've used your ExportAssetBundle.cs script for create .android.unity3d asset files. It was working fine but today when i tried, i got below error. I don't know whats happened,
Building Asset Bundles requires Unity Advanced for AndroidPlayer
UnityEditor.BuildPipeline:BuildAssetBundle(Object, Object[], String, BuildAssetBundleOptions, BuildTarget)
ExportAssetBundles:ExportResurce() (at Assets/Editor/ExportAssetBundles.cs:21)