[unity3d]Assetbundle使用示例2(支持多平台)
2013-11-03 18:40
281 查看
支持多平台的Assetbundle的应用示例,贴代码,供学习!
这里不同平台的StreamingAssets是不同的,所以我们要写预处理!
截图:
关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:858550 欢迎进行技术讨论,里面有不少大牛
这里不同平台的StreamingAssets是不同的,所以我们要写预处理!
using UnityEngine; using System.Collections; public class RunScript : MonoBehaviour { //不同平台下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) { 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"); } }
截图:
关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:858550 欢迎进行技术讨论,里面有不少大牛
相关文章推荐
- [unity3d]Assetbundle使用示例2(支持多平台)
- Unity3D 5.3 新版AssetBundle使用方案及策略
- 【小松教你手游开发】【unity实用技能】Unity3D中Assetbundle技术使用心得
- Unity3d Load AssetBundle(不同平台)
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3d 开发(六) 5.x AssetBundle使用
- 【Unity3D技术文档翻译】第1.6篇 使用 AssetBundle Manager
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3d Assetbundle代码示例
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3D在移动平台下加载AssetBundle导致Shader效果不正确的问题
- 【Unity3D技术文档翻译】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完结)
- unity3d里面prefab、assetbundle、unitypackage等包的使用
- Unity3D 5.3 新版AssetBundle使用方案及策略
- unity3d开发2d游戏关于Assetbundle的使用
- Unity3D 5.3 新版AssetBundle使用方案及策略
- Unity3D 5.3 新版AssetBundle使用方案及策略