AssetBundle打包-----BuildPipeline的应用
打包思路:确定要打包资源的路径、和打包的输出路径(一般为S路径),把存放资源的路径使用递归进行遍历,获取所有资源,文件类型的资源可以通过File拷贝或IO写到输出路径,其他资源的打包通过AssetBundle方式打包,即确定AB包和AB包内的资源,使用BuildPieline.BuildAssetBundle进行打包。
BuildPipeline.BuildAssetBundles()两个重载,三个参数: BuildPipeline.BuildAssetBundles(bundle的输出路径, BuildAssetBundleOptions<压缩格式>,BuildTarget当前资源需要被使用的平台的分类);四个参数:BuildPipeline.BuildAssetBundles(bundle的输出路径,AssetBundleBuild对象的集合(AssetBundleBuild对象,存储了AB包名和资源路径数组), BuildAssetBundleOptions<压缩格式>,BuildTarget当前资源需要被使用的平台的分类)。
打包路径:
一般以Appcation.Datapath(Assets目录)下的StreamingAssets为输出路径。
压缩方式:
1)BuildAssetBundleOptions.None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长,需要解压全部。
2)BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快
3)BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。
注意:使用LZ4压缩,可以获得可以跟不压缩相媲美的加载速度,而且比不压缩文件要小。
BuildTarget当前资源需要被使用的平台的分类:PC端,移动端(安卓,ios)。
| 不压缩 | LZ4压缩 | LZMA压缩 | |
| WWW加载 | 内存:未压缩资源包的大小(+当WWW未被Disposed时未压缩资源包的大小) 性能:没有额外的处理过程 |
内存:LZ4高压缩包的大小(+当WWW未被Disposed时LZ4高压缩包的大小) 性能:没有额外的处理过程 |
内存:LZ4压缩包的大小(+当WWW未被Disposed时LZMA压缩包的大小) 性能:当下载的时候,LZMA解压过程+LZ4压缩过程 |
| LoadFromCacheOrDownload加载 | 内存:没有额外内存占用 性能:从磁盘读取的过程 |
内存: 没有额外内存占用 性能:从磁盘读取的过程 |
内存:没有额外内存占用 性能:从磁盘读取的过程 |
| LoadFromMemory (异步)加载 | 内存:未压缩的资源包大小 性能:没有额外的处理过程 |
内存:LZ4高压缩资源包的大小 性能:没有额外的处理过程 |
内存:没有额外内存占用 性能:从磁盘读取的过程 |
| LoadFromFile(异步)加载 | 内存:没有额外内存占用 性能:从磁盘读取的过程 |
内存:没有额外内存占用 性能:从磁盘读取的过程 |
内存:LZ4压缩包的大小 性能:从磁盘读取+LZMA解压+LZ4压缩 的过程 |
| WebRequest (也需要缓存)加载 | 内存:未压缩的资源包大小 性能:没有额外处理过程[+如果缓存则从磁盘中读取的过程] |
内存:LZ4高压缩包的大小 性能:没有额外处理过程[+如果缓存则从磁盘中读取的过程] |
内存:LZ4压缩包的大小 性能:当下载的时候,LZMA解压过程+LZ4压缩过程[+如果缓存则从磁盘中读取的过程] |
AssetBundle打包-----BuildPipeline的应用的更多相关文章
- Unity5 AssetBundle 打包以及加载
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEditor; us ...
- Unity5.x版本AssetBundle打包研究
Unity5的AssetBundle打包机制和以前版本不太一样.简单的说就是,只要给你要打包的资源设置一个AssetBundleName ,Unity自身会对这些设置了名字的资源进行打包,如果一个资源 ...
- Unity3D使用Assetbundle打包加载(Prefab、场景)
之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbund ...
- U3D assetbundle打包
using UnityEngine; using System.Collections; using UnityEditor; //此脚本不一定要放于editor目录下,经测试,放于其它地方也可以 p ...
- Unity3d 5.x AssetBundle打包与加载
1.AssetBundle打包 unity 5.x版本AssetBundle打包,只需要设置好AssetBundle的名称后,unity会自动将其打包,无需处理其他,唯独需要做的是设置好个AssetB ...
- AssetBundle打包
为热更新打基础(xlua\tolua) 素材.源码链接:http://www.sikiedu.com/course/74/task/1812/show 一.AssetBundle的定义和作用 1,As ...
- AssetBundle打包详解
Unity5.x AssetBundle打包详解 在网上查看了很多资料,想详细搞清楚AssetBundle的原理.以实现符合项目需求的打包工具和加载逻辑 1. AssetBundle是什么? Asse ...
- Unity5 AssetBundle打包加载及服务器加载
Assetbundle为资源包不是资源 打包1:通过脚本指定打包 AssetBundleBuild ab = new AssetBundleBuild ...
- Unity——AssetBundle打包工具
Unity批量打AB包 为了资源热更新,Unity支持将所有资源打包成AssetBundle资源,存放在SteamingAssets文件夹中: 在项目发布之前,需要将所有资源打包成.ab文件,动态加载 ...
随机推荐
- FlatList 核心运用
<FlatList data={this.state.stuList} renderItem={this._renderItem} keyExtactor={this._keyExtractor ...
- 基于MAVEN使用IDEA创建dubbo入门项目图文教程
花了很长时间没有找到一个很详细的图文教程来学习dubbo入门框架,故记录下来. 一: 项目工程目录 简单介绍项目目录结构: 二: 创建父工程 具体操作步骤: 1,打开IDEA,按下面步骤来 File- ...
- sql排列组合
一个表中4条记录,如何查询所有可能组成的结果. 例如: 1 2 3 4 四条记录,最后组成(12),(13),(14),(23),(24),(34) 最后sql如下: SELECT a.name ...
- P1403 [AHOI2005]约数研究 题解
转载luogu某位神犇的题解QAQ 这题重点在于一个公式: f(i)=n/i 至于公式是怎么推出来的,看我解释: 1-n的因子个数,可以看成共含有2因子的数的个数+含有3因子的数的个数……+含有n因子 ...
- F2833x 调用DSP函数库实现复数的FFT的方法
转载自:http://blog.csdn.net/aeecren/article/details/67644363:个人觉得写的很详细,值得一看 在数字信号处理中,FFT变换是经常使用到的,在DSP中 ...
- 初识html与css
---恢复内容开始--- PS应用量尺寸w.h- 操作方式: 窗口,信息,右上角面板选项,标尺单位,像素切图- 操作方式: 切片工具, 文件 ,另存为web所有格式,jpeg,存储,切片:选中的切片, ...
- URL 通过Get方式传递数组参数
URL 通过Get方式传递数组参数 方法1: ?id=1&id=2&id=3 后台获取时,只需要reqeust.getParameterValues("id") 获 ...
- java上传图片
-- jsp 一定要加上enctype="multipart/form-data" method="post" 不加无法辨别是否是上传表单的数据 <fo ...
- 自动化运维之Saltstack
第三十八课 自动化运维之Saltstack 目录 一.自动化运维介绍 二. saltstack安装 三. 启动saltstack服务 四. saltstack配置认证 五. saltstack远程执行 ...
- java HttpClient 忽略证书的信任的实现 MySSLProtocolSocketFactory
当不需要任何证书访问https时,java中先实现一个MySSLProtocolSocketFactory类忽略证书的信任 package com.tgb.mq.producer.utils; imp ...