unity5已经封装好了接口,所以依赖打包并没有那么神秘和复杂了。

打包:
1.定义好资源的assetBundleName

2.BuildPipeline.BuildAssetBundles,指定资源目录和压缩类型
 
生成:

1.Assetbundle文件,加载时的首要文件,包含所有资源的依赖信息
2.每个文件对应一个.manifest,不用管他,但是可以打开查看他引用了哪些资源。
 
加载:
1.获取AssetBundle文件
2.LoadAsset("AssetBundleManifest")转换为AssetBundleManifest
3.通过manifest.GetAllDependencies("测试文件"),获取它依赖的ab,得到的是AB数组,并下载它
4.最后下载名为(测试文件)的资源即可。
 
测试代码:
  1. using UnityEngine;
  2. using System.Collections;
  3. public class LoadAssetbundle : MonoBehaviour {
  4. void Start()
  5. {
  6. // 1.加载Manifest文件
  7. AssetBundle manifestBundle=AssetBundle.CreateFromFile(Application.dataPath +"/ab/Assetbundle");
  8. if(manifestBundle != null)
  9. {
  10. AssetBundleManifest manifest = (AssetBundleManifest)manifestBundle.LoadAsset("AssetBundleManifest");
  11. // 2.获取依赖文件列表
  12. string[] cubedepends = manifest.GetAllDependencies("assets/res/1.prefab");
  13. AssetBundle[] dependsAssetbundle = new AssetBundle[cubedepends.Length];
  14. for(int index = 0; index < cubedepends.Length; index++)
  15. {
  16. // 3.加载所有的依赖资源
  17. dependsAssetbundle[index]=AssetBundle.CreateFromFile(
  18. Application.dataPath +"/../Assetbundle/"+cubedepends[index]);
  19. }
  20. // 4.加载资源
  21. AssetBundle cubeBundle=AssetBundle.CreateFromFile(
  22. Application.dataPath +"/ab/assets/res/1.prefab" );
  23. GameObject cube=cubeBundle.LoadAsset("1") as GameObject;
  24. if(cube!=null)
  25. {
  26. Instantiate(cube);
  27. }
  28. }
  29. }
  30. }
 
坑tips:
如果材质球的名称和它引用的贴图名称一样,材质球内存占有量就会像包含了贴图的内存一样。
 
换版本tips:
4.6项目移植到5.0.2,ab包无法加载,重新打包即可。
不改打包代码,多数文件大小增大2k
改为最新打包代码,不做依赖,多数文件大小增大2-4%左右
 
tips:
如果做依赖,会生成很多零碎的文件,开发期不建议使用,以免增加不必要的工作量。和美术定义好资源规范才是重点。(个人意见,不喜随你便)

unity学习 5.x依赖打包和解包的更多相关文章

  1. python中*和**的打包和解包

    python中的*和**,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的 一. 打包参数 * 的作用:在函数定义中,收集所有的位置参数到一个新的元组,并将这个元组赋值给变量arg ...

  2. 【Unity】AssetBundle的使用——打包/解包

    最近参考了各位大神的资源,初步学习了Unity的资源管理模式,包括在编辑器管理(使用AssetDatabase)和在运行时管理(使用Resources和AssetBundle).在此简单总结运行时用A ...

  3. [android]system.img文件的打包和解包

    1:system.img的两种格式 system2_0.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-94 ...

  4. Unity学习笔记(4):依赖注入

    Unity具体实现依赖注入包含构造函数注入.属性注入.方法注入,所谓注入相当赋值,下面一个一个来介绍 1:构造函数注入 1.1当类有多个构造函数时,可以通过InjectionConstructor特性 ...

  5. pak文件的打包和解包

    pak格式的文件 一般游戏有资源 游戏素材会打包放进去 比如游戏语音 游戏多加点语音  多加一些贴图资源 外部文件实现的 素材--->pak文件--->用的时候从文件中取出来 文件的打包 ...

  6. Day004_Linux基础_基础命令之tar打包解包

    基础命令之 打包,和解包. tar zcvf 打包的参数  tar zcvf /tmp/etc.tar.gz /etc  将/etc/下的文件压缩成一个压缩包 z  通过gzip工具进行压缩 c 表示 ...

  7. Unity学习(六)5.x依赖打包

    http://blog.sina.com.cn/s/blog_89d90b7c0102w2ox.html unity5已经封装好了接口,所以依赖打包并没有那么神秘和复杂了. 打包: 1.定义好资源的a ...

  8. 【Maven学习】Maven打包生成包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134583 ******************************************* ...

  9. 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134394 ******************************************* ...

随机推荐

  1. Kubernetes-基于helm安装部署高可用的Redis及其形态探索

    首先是一些关于redis的介绍和其在K8S上的安装过程:https://www.kubernetes.org.cn/3974.html 1.1部署形态 通过上述地址的教程,可以完成redis 的安装和 ...

  2. 2.9 初识 jetpack

    Android Jetpack 组件 Android Jetpack 组件是库的集合 这些库是为协同工作而构建的,也可以单独采用,同时利用 Kotlin 语言功能帮助提高工作效率.可全部使用,也可混合 ...

  3. soap调用Jar包冲突,SOAPMessageContext

    ================================ ©Copyright 蕃薯耀 2020-01-07 https://www.cnblogs.com/fanshuyao/ soap调用 ...

  4. Spring耗时拦截器(url,restful)

    import java.io.IOException; import java.util.Date; import javax.servlet.Filter; import javax.servlet ...

  5. git 常见错误

    1.pack exceeds maximum allowed size 解决办法:git config http.postBuffer 52428800

  6. python虚拟环境配置(下)

    前言 嘿,各位小伙伴们,晚上好呀,新年快乐,注意预防流感哈,就不要出去浪了,万一中奖了,嗯...,还是当个宅男,宅男无敌,哈哈哈, 过年了,村都被封了,哎,出都出不去,想着干点啥,就把以前没完善的继续 ...

  7. GitHub Token for composer

    a2248520cdd2b1d27c2c70741003b9078530d81c

  8. C# Socket编程入门

    一直没有触及到这一块儿,学习下 在看一个小demo   https://www.cnblogs.com/yy3b2007com/p/7476458.html

  9. consul生产实战

    pwd:/home/appadmin wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip unz ...

  10. request和response的setCharacterEncoding()方法

    1.pageEncoding=”UTF-8”的作用是设置JSP编译成Servlet时使用的编码.2.contentType=”text/html;charset=UTF-8”的作用是指定服务器响应给浏 ...