AssetBundle
来源:互联网 发布:java array contains 编辑:程序博客网 时间:2024/05/22 03:37
设置下面的AssetBundle,打包的文件
打包:
using UnityEditor;using System.IO;public class CreateAssetBundles{ [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { string dir = "AssetBundles"; if(Directory.Exists(dir)==false) { Directory.CreateDirectory(dir); } BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64); }}
加载本地的打包资源:
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;public class LoadFromFileExample : MonoBehaviour {// Use this for initializationvoid Start () { AssetBundle ab= AssetBundle.LoadFromFile("AssetBundles/scene/capsulewall.unity3d"); GameObject go = ab.LoadAsset<GameObject>("Capsulewall"); Instantiate(go); //Object[] objs = ab.LoadAllAssets(); //得到所有的模型 //foreach(Object o in objs) //{ // Instantiate(o); //} }// Update is called once per framevoid Update () {}}
依赖打包:
把共有的资源也打包,AssetBundle为Share,系统会自动分配
加载的时候先加载依赖包,依赖包是共有的资源
BuildAssetBundleOptions:
加载:
using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using UnityEngine.Networking;public class LoadFromFileExample : MonoBehaviour {// Use this for initializationIEnumerator Start () { string path = "AssetBundles/cubewall.unity3d"; // AssetBundle ab2 = AssetBundle.LoadFromFile("AssetBundles/share.unity3d"); //AssetBundle ab= AssetBundle.LoadFromFile("AssetBundles/cubewall.unity3d"); // GameObject go = ab.LoadAsset<GameObject>("wall"); // Instantiate(go); //Object[] objs = ab.LoadAllAssets(); //得到所有的模型 //foreach(Object o in objs) //{ // Instantiate(o); //} //1.第一种加载AB的方式LoadFromMemoryAsync(从内存中加载) //AssetBundleCreateRequest request = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path)); //yield return request; //AssetBundle ab= request.assetBundle; //AssetBundle ab= AssetBundle.LoadFromMemory(File.ReadAllBytes(path)); //AssetBundle ab2 = AssetBundle.LoadFromMemory(File.ReadAllBytes("AssetBundles/share.unity3d")); //2.第二种加载AB的方式LoadFromFileAsync //AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(path); //yield return request; //AssetBundle ab = request.assetBundle; //3.第三种加载AB的方式 WWW //while(Caching.ready==false) //{ // yield return null; //} ////file:// 或file:///都可以 ////WWW www = WWW.LoadFromCacheOrDownload(@"file:///E:\UnityProject\AssetBundleProject\AssetBundles\cubewall.unity3d", 1); //WWW www = WWW.LoadFromCacheOrDownload(@"http://localhost/AssetBundles/cubewall.unity3d",1); //yield return www; //if(string.IsNullOrEmpty(www.error)==false) //{ // Debug.Log(www.error); // yield break; //} //AssetBundle ab = www.assetBundle; //4.第四种加载方式UnityWebRequest //string uri = @"file:///E:\UnityProject\AssetBundleProject\AssetBundles\cubewall.unity3d"; string uri = @"http://localhost/AssetBundles/cubewall.unity3d"; UnityWebRequest request = UnityWebRequest.GetAssetBundle(uri); yield return request.Send(); //string uri2 = @"http://localhost/AssetBundles/share.unity3d"; //UnityWebRequest request2 = UnityWebRequest.GetAssetBundle(uri2); //yield return request2.Send(); //DownloadHandlerAssetBundle.GetContent(request2); AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request); //AssetBundle ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle; //使用里面的资源:(加载资源) GameObject go = ab.LoadAsset<GameObject>("wall"); Instantiate(go); AssetBundle manifestAB = AssetBundle.LoadFromFile("AssetBundles/AssetBundles"); AssetBundleManifest manifest = manifestAB.LoadAsset<AssetBundleManifest>("AssetBundleManifest"); string[] strs = manifest.GetAllDependencies("cubewall.unity3d"); foreach(string name in strs) { Debug.Log(name); AssetBundle.LoadFromFile("AssetBundles/" + name); } }// Update is called once per framevoid Update () {}}
阅读全文
0 0
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle
- assetbundle
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle
- AssetBundle测试
- 加载AssetBundle
- 制作AssetBundle
- AssetBundle杂谈
- 关于AssetBundle
- Unity5 AssetBundle
- Virtualenv简介
- [BZOJ3993][SDOI2015]星际战争(二分答案+最大流)
- MTK手机官方ROM提取教程
- Nodejs 创建文本文件和Excel文件
- 在python中使用grpc和protobuf
- AssetBundle
- 第九届山东理工大学ACM网络编程擂台赛 热身赛 sdut4087 ldq's Sons
- caffe ssd
- Spring的各种PostProcessor
- 基于cefsharp的浏览器应用开发(支持XP系统)
- 桌面门户与单点登录简要介绍
- gdb获取进程的全局变量
- 分事事务之异步确保性(二)
- 与LCD移植相关的概念