Assetbundle创建与加载
【Assetbundle创建与加载】
Unity有两种动态加载机制:一种是Resource.Load。一种是AssetBundle。Assetbundle是Unity Pro提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中。供加载、解压使用。
【创建Assetbundle】
使用方法 BuildPipeline.BuildAssetBundle (Object, assets , pathName , options , targetPlatform)
参数1:它只能放一个对象。
参数2:可以放入一个数组对象。
参数3:保存路径。
参数4:BuilderAssetBundleOptions
CollectDependencies // 包含所有依赖关系。
CompleteAssets//强制包含整个资源
DisableWriteTypeTree//在资源包不包含类型信息。
DeterministicAssetBundle//编译资源包使用一个哈希表储存对象ID在资源包中。
UncompressedAssetBundle//不压缩Assetbundle,默认会进行压缩
参数5:平台
特别注意的是,电脑上和手机上打出来的Assetbundle不能混用,不同平台只能用自己的。
【载入Assetbundle】
使用方法:
1)WWW bundle = new WWW(path);
2)WWW bundle = WWW.LoadFromCacheOrDownload(path, fileVer);
载入成功后就可以通过资源名使用bundle.assetBundle.Load方法获取资源。
如下图所示

使用Assetbundle.Load会从Assetbundle的内存镜像中读取并创建一个Asset对象,创建的同时会分配相应的内存用于反序列化存储。
【内存释放】

最后在使用Assetbundle时候最好的方式是。
创建时:使用Assetbundle.load加载所需的asset,加载完后立即Assetbundle.Unload(false),释放Assetbundle文件本身的内存镜像,但不销毁加载的Asset对象。这样遍可以释放一部分内存。
释放时。如果是通过Instantiate的对象,用Destroy进行销毁。在合适的地方使用Resources.UnloadUnusedAssets,释放已经没有引用的Asset。Unity底层会对对象引用进行计数,如果引用为0.执行UnloadUnusedAssets就可以全部释放。
【使用要点】
1、AssetBundle会使用Lzma压缩。
2、Resource下的资源发布时会变成resources.assets文件,2G磁盘大小限制。首次完全下载,不可更新。
3、AssetBundle的本地磁盘缓存可多达4G,除了Web版只能50M。
4、兼容性。

5、AssetBundle创建方法:

6、BundleOption的区别。

7、AssetBundle.CreateFromMemory()速度慢。
8、AssetBundle.CreateFromFile只能加载非压缩的AssetBundle。
9、LoadLevel方法详解:

10、AssetBundle的释放。

Assetbundle创建与加载的更多相关文章
- Unity3D基础学习之AssetBundle 资源包创建与加载
前几天做了AssentBundle的例子,遇到了问题,在论坛上问了三天都没人解答,最后在一个朋友的帮助下解决了.下面介绍AssentBundle. AssetBundles让你通过WWW类流式加载额外 ...
- Unity5 AssetBundle 打包以及加载
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEditor; us ...
- unity中ScriptableObject在assetbundle中的加载
转载请标明出处:http://www.cnblogs.com/zblade/ 以前都是写一些个人的调研博客,从今天开始,也写一些个人在开发中遇到的一些可以分享的趟坑博客,为后续的开发人员提供一些绵薄之 ...
- Assetbundle管理与加载
最近在做项目优化的时候发现公司的项目用的还是老式的WWW去加载assetbundle资源的形式,而且是通过在两个Update里面分开加载AB和Asset的,这样虽然避免了协程的的使用,但是把一件事分开 ...
- Android四大组件之Activity(活动)及其布局的创建与加载布局
Android四大组件之Activity(活动)及其布局的创建与加载布局 什么是Activity ? 活动(Activity)是包含用户界面的组件,主要用于和用户进行交互的,一个应用程序中可以包含零个 ...
- Unity3d 5.x AssetBundle打包与加载
1.AssetBundle打包 unity 5.x版本AssetBundle打包,只需要设置好AssetBundle的名称后,unity会自动将其打包,无需处理其他,唯独需要做的是设置好个AssetB ...
- powershell创建并加载配置文件
$pshome :powershell的主目录 $profile :显示 Windows PowerShell 配置文件的路径 test-path $profile :确定是否已经在系统上创建了 Wi ...
- ExtJS 创建动态加载树
Ext 中导航树的创建有两种方式:1.首先将所有的数据读出来,然后绑定到前台页面.2.每点击一个节点展开后加载子节点.在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是 ...
- 创建以及加载模块【nodejs第四篇】
建立两个文件,文件一createModule.js ,文件二main.js createModule.js的代码,主要用于创建一个模块 /** * Created by Administrator o ...
随机推荐
- django,flask接口初试
-------------django 1.需要安装的环境 pip install django pip install djangorestframework ## restful组件 pip in ...
- 当别人给你一个wsdl或者webservice接口时
一 通过wsdl生成客户端 引用于http://www.cnblogs.com/yisheng163/p/4524808.html 参照http://www.cnblogs.com/xdp-gacl ...
- Eureka 客户端启动报错误 Cannot determine embedded database driver class for database type NONE
用这种数据库配置就是死活连不上数据库 提示:Cannot determine embedded database driver class for database type NONE 解决方式: 启 ...
- Mysql5.7 Linux安装教程
1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql 2下 ...
- 1.App爬取相关库的安装(安装Charles及手机端证书安装配置)
一.官网下载Charles安装包: https://www.charlesproxy.com/download1.下载对应版本 我这里下载的是 win 64 bit (下载完解压,双击打开charle ...
- js: 字符集
用js生成字符集 一般网页制作中需要一些向上向下的小箭头,用图片非常不合算(一个页面发起多个http请求.css.文件大小等方面考虑) 所以用一些字符集的字符图形,效果很好 下面是用js生成字符集,以 ...
- out.println与<%!%>的功能一样
<%! public static final String DBDRIVER = "A"; public static final String DBURL = " ...
- element UI select 设定默认值
要为select设定默认值,有两个步骤 1.数据中,声明一个变量param:该变量的值设为你想设定的select option中value 2.控件的 v-model 绑定 param 即可 < ...
- 判断窗体 show完成
TForm窗体 this->Visible this->Showing true: 显示 fale:关闭 这个可用 this->Act ...
- png 2 icon
http://www.easyicon.net/covert/ 这个网页可以转换png图片为icon格式