前端之家收集整理的这篇文章主要介绍了
Unity学习(六)5.x依赖打包,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
http://blog.sina.com.cn/s/blog_89d90b7c0102w2ox.html unity5已经封装好了接口,所以依赖打包并没有那么神秘和复杂了。 打包: 1.定义好资源的assetBundleName 2.BuildPipeline.BuildAssetBundles,指定资源目录和压缩类型
生成: 1.Assetbundle
文件,加载时的首要
文件,包含所有资源的依赖信息 2.每个
文件对应一个.manifest,不用管他,但是可以打开查看他引用了哪些资源。 加载: 1.
获取AssetBundle
文件 2.LoadAsset("AssetBundleManifest")转换为AssetBundleManifest 3.通过manifest.GetAllDependencies("测试
文件"),
获取它依赖的ab,得到的是AB数组,并下载它 4.最后下载名为(测试
文件)的资源即可。 测试
代码: using UnityEngine; using System.Collections; public class LoadAssetbundle : MonoBehav
IoUr { void Start() { // 1.加载Manifest
文件 AssetBundle manifestBundle=AssetBundle.CreateFromFile(Application.dataPath +"/ab/Assetbundle"); if(manifestBundle != null) { AssetBundleManifest manifest = (AssetBundleManifest)manifestBundle.LoadAsset("AssetBundleManifest"); // 2.
获取依赖
文件列表 string[] cubedepends = manifest.GetAllDependencies("assets/res/1.prefab"); AssetBundle[] dependsAssetbundle = new AssetBundle[cubedepends.Length]; for(int index = 0; index < cubedepends.Length; index++) { // 3.加载所有的依赖资源 dependsAssetbundle[index]=AssetBundle.CreateFromFile( Application.dataPath +"/../Assetbundle/"+cubedepends[index]); } // 4.加载资源 AssetBundle cubeBundle=AssetBundle.CreateFromFile( Application.dataPath +"/ab/assets/res/1.prefab" ); GameObject cube=cubeBundle.LoadAsset("1") as GameObject; if(cube!=null) { Instantiate(cube); } } } } 坑tips: 如果材质球的
名称和它引用的贴图
名称一样,材质球内存占有量就会像包含了贴图的内存一样。 换版本tips: 4.6项目移植到5.0.2,ab包无法加载,重新打包即可。 不改打包
代码,多数
文件大小增大2k 改为最新打包
代码,不做依赖,多数
文件大小增大2-4%左右 tips: 如果做依赖,会
生成很多零碎的
文件,开发期不建议使用,以免
增加不必要的工作量。和美术定义好资源规范才是重点。(个人意见,不喜随你便Unity学习(六)5.x依赖打包)
原文链接:https://www.f2er.com/javaschema/284069.html