Unity3D-加载AssetBundle
2016-02-24 16:41
429 查看
//不同平台下StreamingAssets的路径是不同的,这里需要注意一下。 public static readonly string PathURL = #if UNITY_ANDROID "jar:file://" + Application.dataPath + "!/assets/"; #elif UNITY_IPHONE Application.dataPath + "/Raw/"; #elif UNITY_STANDALONE_WIN || UNITY_EDITOR "file://" + Application.dataPath + "/StreamingAssets/"; #else string.Empty; #endif void OnGUI() { if(GUILayout.Button("Main Assetbundle")) { //StartCoroutine(LoadMainGameObject(PathURL + "Prefab0.assetbundle")); //StartCoroutine(LoadMainGameObject(PathURL + "Prefab1.assetbundle")); StartCoroutine(LoadMainCacheGameObject(PathURL + "Prefab0.assetbundle")); StartCoroutine(LoadMainCacheGameObject(PathURL + "Prefab1.assetbundle")); } if(GUILayout.Button("ALL Assetbundle")) { StartCoroutine(LoadALLGameObject(PathURL + "ALL.assetbundle")); } if(GUILayout.Button("Open Scene")) { StartCoroutine(LoadScene()); } } //读取一个资源 private IEnumerator LoadMainGameObject(string path) { WWW bundle = new WWW(path); yield return bundle; //加载到游戏中 yield return Instantiate(bundle.assetBundle.mainAsset); bundle.assetBundle.Unload(false); } //读取全部资源 private IEnumerator LoadALLGameObject(string path) { WWW bundle = new WWW(path); yield return bundle; //通过Prefab的名称把他们都读取出来 Object obj0 = bundle.assetBundle.Load("Prefab0"); Object obj1 = bundle.assetBundle.Load("Prefab1"); //加载到游戏中 yield return Instantiate(obj0); yield return Instantiate(obj1); bundle.assetBundle.Unload(false); } private IEnumerator LoadMainCacheGameObject(string path) { //推荐使用AssetBundle.LoadFromFile WWW bundle = WWW.LoadFromCacheOrDownload(path,5); yield return bundle; //加载到游戏中 yield return Instantiate(bundle.assetBundle.mainAsset); bundle.assetBundle.Unload(false); } private IEnumerator LoadScene() { WWW download = WWW.LoadFromCacheOrDownload ("file://"+Application.dataPath + "/MyScene.unity3d", 1); yield return download; var bundle = download.assetBundle; Application.LoadLevel ("Level"); }
相关文章推荐
- unity脚本执行顺序详解
- Unity的Shader开发教程整理
- Unity3d iOS 如何添加Admob
- 【Unity3D游戏开发】基于NGUI的表情图文混排解决方案 (二二)
- Unity3D Android游戏添加谷歌广告——使用AdMob
- unity DestroyBuffer can only be called from the main thread
- AdMob的Android应用程序添加(Unity,Eclipse可以)
- unity touch
- UnityException: Input Key named: Fire1 is unknown
- Unity 5.X扩展编辑器之打包assetbundle
- Unity 5.X扩展编辑器之打包assetbundle
- 谷歌移动广告Unity插件
- 在Unity中截屏需要注意的问题
- Unity Interface Serialization-Expose Interface field In Inspector
- unity, AnimatorCullingMode的一个bug
- Unity Android平台的AdMob的应用
- 整合谷歌分析和AdMob到Unity3D
- [增强现实]Unity制作AR增强现实--茶壶(亲测)
- 用DropBox分享Unity3D的Web应用
- unity3d 获取cpu序列号,硬盘ID,网卡MAC地址等硬件可用于加密