一·含义

一个压缩文件,针对于特定平台的资产压缩包。资产包括模型,贴图,预制体,音效,材质球等,注意不包括c#脚本。

二·作用

相对于resource文件夹下面的东西打包后定死只读,无法修改。

AB包可以从网络上去下载,也可以从本地自动打包,压缩方式可以自定义,后期可以动态更新,相对于resource更灵活。

1.可以减少包体的大小,可以压缩资源,可以减少初始包的大小,比如打包出去可以放到远端服务器上面,一开始的时候先是一个很小的包,通过网络更新,先下载一个小包,进入游戏后再慢慢下。

2.资源的热更新,比如特定的节日活动,脚本的热更新主要是用来更新Lua脚本

热更新流程:

客户端自己带很少的·默认资源,第一步先获取资源服务器的地址,然后来到资源服务器下载一个资源对比文件,在资源服务器中检索哪些进行了更新,哪些需要下载,然后下载对应的AB包。

AB包是热更新的基础。

三。生成AB包的资源文件

1.用unity编辑器开发,自定义打包工具

2.官方提供好的打包工具

新建工程->Window->packege manager->搜AssetBuddle Browser->点击安装

安装完毕之后就可以在Windows中找到AssetBudlle,

如何让资源和AB包关联并且打包出来?

选中想要打包的资源,在inspector面板上下面有一个AssetBundle,点击new,取一个包名,这时可以在面板上看到创建的包。

注意点:unity中C#代码是不能打包成AB包的,所以需要lua进行热更新。

预制体本质上就是一个文件,里面是文件信息,所以预制体不是把脚本打成AB包而是把关联的数据达成AB包。

最终的打包,对应的Build Target要选择默认的平台,如果要对应不同的平台,那么需要重新打包。

下面的clear Folder的意思是每次打包的时候是否清空文件夹。

Copy to StreamingAssets,勾上的话会默认把打包的文件夹中的东西复制到StreamingAssets(默认都勾选上)

Compression是打包的方式()

不压缩(解压快,包大)

标准解压:压缩率最高,但是解压慢,用其中一个东西需要解压所有。耗性能

LZ4():没有标准解压高,但是用哪个解压哪个。(推荐)

Build后刷新资源文件,可以看到路径,在·文件夹下可以看到实际的路径

打包到pc文件夹下

打开StreamingAssets文件夹下,那些没有后缀的就是资源文件,如果后缀带了manifest的就是相关资源文件的配置文件。

四,使用AB包资源文件

使用unity中的API

AssetBuddle(一)的更多相关文章

  1. .assetbundle 和.unity3d 好处

    .assetbundle 资源文件 .unity3D  场景文件 xml.json 静态存储和 还原 AssetBuddle 优点:减小压缩包.资源更新.分开安装包和数据包.AssetBuddle加密 ...

  2. 学习tolua#·20多个例子

    初始项目搭建 clone官方库 新建unity工程 依次把官方库里的Assets和Unity5.x/Assets拷贝到项目Assets里 打开unity工程, 开始逐个学习例子,例子目录: 1. he ...

  3. UnityWebRequest_ZT

    using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  4. 腾讯暑期 前后七面 + hr(已拿offer面经)

    以下是时间线 魔方 魔术师工作室 3.19 一面(120mins) c++ struct和union区别? 指针和引用的区别? 左值和右值? 字节对齐的作用? 什么情况下需要自定义new? mallo ...

随机推荐

  1. vue原理

    1. Vue 响应式原理 核心实现类: Observer : 它的作用是给对象的属性添加 getter 和 setter,用于依赖收集和派发更新 Dep : 用于收集当前响应式对象的依赖关系,每个响应 ...

  2. 【JVM】学习JVM垃圾回收理论

    参考链接:https://www.cnblogs.com/aspirant/p/8662690.html 一,垃圾回收算法 JVM内存结构:程序计数器.虚拟机栈.本地方法栈.堆区.方法区 1,引用计数 ...

  3. Thread 的run方法和start方法的区别

    start()方法是用来启动线程,实现了多线程运行 点进去查看源码,发现start方法创建一个线程 并让线程处于就绪状态,并且在start方法内会调用start0()方法,而start0作为本地方法  ...

  4. 最长公共子序列(LCS)tzoj:5752

    http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=5752 题意:求两个串的最长公共子序列(顺序相同即为子 ...

  5. JRAT远控

    JRAT java写的一款远控 可以控制mac os  Windows linux 系统 https://share.weiyun.com/21b56e3e5cab4b3f145d7c2330d107 ...

  6. win常用的dos命令

    常用的dos命令 开启dos终端的两种方式: win+r后输入cmd指令 在资源管理器上方的路径窗口直接输入cmd,即可开启指定路径下的cmd终端,省去了cd/d这一步 注:在dos终端里ctrl+v ...

  7. python批量导出、安装依赖库文件

    导出: 在原环境中 pip freeze > fname.txt 安装: 在新环境中  pip install -r fname.txt 其中fname.txt 可以随意命名,其存储安装库文件列 ...

  8. Communications link failure:The last packet successfully received from the server was 0 millisecond ago

    出现这种错误的大致情况如下: 1.数据库连接长时间未使用,断开连接后,再去连接出现这种情况.这种情况常见于用连接池连接数据库出现的问题 2.数据库连接的后缀参数问题 针对上述两种情况,解决方案如下 1 ...

  9. git 报错 incorrect username or password

    如果报这个 就是用户名 或密码错误 添加个正确的凭据就好了

  10. oracle 存过调试 stepinto stepover stepout

    step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数): step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止, ...