我在写这边文章之前参照了如下文章:
https://www.jianshu.com/p/5d4145cd900c

----------------------------我是分割线--------------------------

Asset Bundle的作用:
1.AssetBundle是一个压缩包包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行的时候被加载;
2.AssetBundle自身保存着互相的依赖关系;
3.压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输;
4.把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小;

什么是AssetBundle
可以归为两点:
1,它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)
serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个)
resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载
2,它是一个AssetBundle对象,我们可以通过代码从一个特定的压缩包加载出来的对象。这个对象包含了所有我们当初添加到这个压缩包里面的内容,我们可以通过这个对象加载出来使用。

如何操作?
1.首先,先将游戏物体设置成Prefab预设体(在U3D中创建游戏物体,然后在Assets文件夹下创建一个Prefab文件夹,并将物体拖拽到该文件夹中,就形成了预设体)
然后对该预设体进行编辑:

这里的含义是:生成的AssetBundle文件会生成在scene文件夹下的model.ab文件中,用户可以自定义。
2.在Assets目录下创建一个Editor文件夹,并在Editor文件夹下创建编辑扩展脚本(一定要在Editor文件夹下创建编辑扩展脚本,否则不会生效!!!

这里名字随便命名,注意规范!
3.该脚本代码如下:

using UnityEditor;
using System;
using System.IO;public class CreateAssetbundles
{//可以让U3D的菜单栏生成指定名称的菜单项,点击后,用来调用该方法[MenuItem("AssetsBundle/Build AssetBundles")]static void BuildAllAssetBundles()//进行打包{string dir = "AssetBundles";//判断该目录是否存在if (Directory.Exists(dir) == false){Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录}//参数一为打包到哪个路径,参数二压缩选项  参数三 平台的目标/*BuildAssetBundleOptions.None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,它会使用LZ4算法保存到本地上。BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。注意使用LZ4压缩,可以获得可以跟不压缩想媲美的加载速度,而且比不压缩文件要小。*/BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);}
}

编写好代码之后,U3D的菜单栏会生成一个菜单项:

Unity3D开发之----将预设体Prefab压缩成AssetBundle文件相关推荐

  1. 将文件夹压缩成zip文件

    一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUt ...

  2. java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)

    1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...

  3. OpenCV中将RGB数组在内存中压缩成JPEG文件

    环境 jpeg库: jpegsr9a  下载地址:http://www.ijg.org/ 编译环境: vs2015 Opencv 3.4.2 一.RGB数组来自BMP文件,直接输出在文件系统上 1.1 ...

  4. java 把文件压缩成zip文件

    ackage org.fh.util;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...

  5. php将文件夹压缩成zip文件,将文件夹压缩成zip文件的php代码_php实例

    1.请先下载我准备好的zip.php工具类,下载后解压,将里面的文件放入对应的目录中,我是放在虚拟目录下的include文件夹中. 2.在你的php文件中加入下面代码即可 复制代码 代码如下: req ...

  6. Java导出多个excel并打包压缩成.zip文件

    1.先获取到数据,并将数据导出excel到指定位置 public void downPoliceZip(WorksitePoliceApiInfo worksitePoliceApiInfo) thr ...

  7. linux下使用命令lha压缩成.lzh文件包

    1.安装相关工具 sudo apt-get install jlha-utils 2.压缩命令 lha a 新压缩文件名.lzh 压缩内容.txt 3.解压命令x ,会默认解压到当前压缩文件路径下 l ...

  8. vue -- vue-cli webpack项目打包后自动压缩成zip文件

    用vue2.0开发项目,使用npm run build 命令 ,但是只会生成dist文件夹,以下是生成zip压缩包方法 1,插件安装 webpack插件安装 filemanager-webpack-p ...

  9. 定期备份web工程,压缩为.zip文件

    前些天写了个小练习,定期备份web工程,感觉有点意思,也有点小用处.由于最近封闭开发,下班比较晚,所以电脑一般不关机,省得麻烦,这样就可以一直开着我本机的web服务器,每天备份我的web工程了.备份可 ...

最新文章

  1. 头条抖音后端技术3面,centos卸载软件
  2. python自动测试g_Python自动化测试如何自动生成测试用例?
  3. 什么叫dfs文件服务器,什么是DFS(分布式文件系统)以及DFS的优点
  4. AIRAVATA:量化机器学习中的参数泄露
  5. ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
  6. ad如何镜像器件_使用 Dockerfile 制作镜像
  7. php将文件夹压缩成zip文件,将文件夹压缩成zip文件的php代码_php实例
  8. React系列---Babel
  9. CCNA学习要点,希望能对初学者有帮助
  10. ubuntu desktop 12 lts 安装 vmplayer 问题
  11. json接口(使用,以及自定义)
  12. vivado快速下载及解压安装教程
  13. IT界最短的笑话:上中台!
  14. 探究md5是否可以解密
  15. 迷宫(二) 计蒜客--1596
  16. sqlmap tamper mysql_Sqlmap Tamper大全(1)
  17. New Bing新必应内测资格申请教程,无需科学上网,一分钟搞定!
  18. AI行业强者愈强?Tesra超算网络助力中小AI开发企业!
  19. 【论文阅读】Learning Effective Road Network Representation with Hierarchical Graph Neural Networks
  20. 全民小程序社交分销时代已经来临,掌握小程序分销系统即掌握商机!

热门文章

  1. 飞凌课堂丨液晶模块的DE和HV模式
  2. 花边新闻获取易语言代码
  3. 米豆网首页快照不更新原因分析
  4. python 步数_用python如何修改微信和支付宝每天走路的步数
  5. php 腾讯云 短信验证码发送
  6. oracle提示错误1033,ora-1033 制造问题和解决问题
  7. Halcon如何创建或生成空白的,全黑或全白的8位图和24位图
  8. LabVIEW32位和64位的兼容性
  9. 移动端手指滑动的距离
  10. 第05课:Redis 实际应用中的异常场景及其根因分析和解决方案