-
-
Save yaeda/5410868 to your computer and use it in GitHub Desktop.
| 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); | |
| } | |
| } |
| // 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); | |
| // } | |
| // } | |
| } |
yaeda
commented
Apr 18, 2013
- ExportAssetBundles.cs is editor script, so should be placed under Assets/Editor.
- AssetBundleSample.cs is loader sample.
Hi :)
Thank you
I have a question
i do everything that you had said
but when i delete file it creates too
very strange
Please see photo
http://axgig.com/images/08313496303827739806.jpg
Sorry for poor English :(
Exception: WWW download had an error: Rejected because no crossdomain.xml policy file was found
AssetBundleSample+c__Iterator0.MoveNext () (at Assets/Loader/AssetBundleSample.cs:52)
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)
What is the procedure to export AssetBundle? And How to call AssetBundleSample.cs