Unity打包/读取AssetBundle资源全教程
Unity 资源AssetBundle打包
|
本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) |
|
Chinar —— 心分享、心创新! 助力快速完成资源进行 AssetBundle 打包与读取 为新手节省宝贵的时间,避免采坑! |
Chinar 教程效果:
全文高清图片,点击即可放大观看 (很多人竟然不知道)
1
AssetBundle Description —— 资源打包
AssetBundle 的具体定义网上诸多大神的解释很是细致,一搜一大片,在这里我都不再班门弄斧了
| 这里 Chinar 只简单说下为什么要用它 |
|---|
| 1. 如果所有的资源文件,全部打包到程序中,那么程序的安装包就会很大 AssetBundle 文件放在服务器上,用的时候再从服务器进行加载,所以这个包根本就不在程序当中 |
| 2. 那就是最主要的热更新了 |
| 发布软件后,开发者进行很小的一次更新,都需要重新打包发布 而对于用户来说,需要重新下载进行安装,无疑导致了用户体验不好。只要有更新,用户就重新安装程序 AssetBundle 技术,可以在用户重装软件的情况下,做到更改程序中的一些资源,设置 开发者可以实时的完成更新,应用到所有用户的客户端上,非常方便 |
2
AssetBundle Name —— AssetBundle名称设置
我们如何将一个需要的资源打包到 AssetBundle 中呢?
在 Inspector 面板最下方,有一提供我们预览的小窗口,可以拖动(如果没有,就在最下方缩小着呢,拖上来即可)
在 AssetBundle 选项中, New 给资源包创建/指定一个名称
| 注意-命名规范: |
|---|
| 1. 必须小写字母,就算你大写了Unity也会自动转小写 |
| 2. 命名规范:名称后要加 .unity3d / .assetbundle (例如:globule.unity3d) (就算你起名的时候不加 .unity3d / .assetbundle也是可以读取的(但不规范,不推荐!)) |
| 3. 名称+“/”+另一个名称,会自动生成子选项(打包时,会自动生成一个新的名称文件夹) |
(进行 AssetBundle 打包操作后,会生成对应名称的 AssetBundle 文件:globule. unity3d)
如果有子选项的情况下打包后,会生成一个chinar文件夹,存放子选项名称的文件
3
Editor Menu —— 创建菜单按钮
写一个编辑器脚本,菜单栏中添加一个按钮,用来完成 AssetBundle 打包操作
为了规范,要创建一个 Editor文件夹,将脚本放在该目录中
点击按钮会在工程文件内, Assets 文件外,自动创建一个名为 ChinarAssetBundles 的文件夹
using System.IO;
using UnityEditor;
/// <summary>
/// 打包脚本 —— 放在 Editor 文件夹下(规范)
/// </summary>
public class ChinarAssetBundle
{
[MenuItem("Chinar工具/打包AssetsBundle资源")] //菜单栏添加按钮
static void BuildAllAssetsBundles()
{
string folder = "ChinarAssetBundles"; //定义文件夹名字
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); //文件夹不存在,则创建
BuildPipeline.BuildAssetBundles("ChinarAssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); //创建AssetBundle
}
}
4
BuildPipeline.BuildAssetBundles() —— 打包函数
等待系统编译后,菜单栏会增加一个按钮 Chinar 工具 点击打包,即可完成资源打包
提示:
将需要打包 AssetBundle 的预设物、图片、材质等资源设置对应 AssetBundle 名称
系统会自动打包被设置名称的文件,没有设置的都不会进行打包
这里我指定了1个图片、一个纹理,一个预设物进行打包
5
BuildPipeline.BuildAssetBundles() —— 打包函数
Unity 提供的打包函数,有多个重载函数
具体有什么不同,请大家查询下官方Api或者搜索下网络大神的讲解,这里都不一一赘述了
无特别情况下,就用这一个就够了
BuildPipeline.BuildAssetBundles("ChinarAssetBundle",BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
支持
May Be —— 搞开发,总有一天要做的事!
|
拥有自己的服务器,无需再找攻略! Chinar 提供一站式教程,闭眼式创建! 为新手节省宝贵时间,避免采坑! |
先点击领取 —— 阿里全产品优惠券 (享受最低优惠)
1 —— 云服务器超全购买流程 (新手必备!)
2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)
3—— Windows 服务器配置、运行、建站一条龙 !
4 —— Linux 服务器配置、运行、建站一条龙 !
" role="presentation">
技术交流群:806091680 ! Chinar 欢迎你的加入
END
本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究
对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com
对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址
Unity打包/读取AssetBundle资源全教程的更多相关文章
- Unity读取AssetBundle资源全教程(所有读取方式)
读取/加载 AssetBundle 资源的多种方式 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Ch ...
- Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源
项目中的资源一般我们打包成AssetBundle格式 方便我们加载和热更 而AssetBundle文件 一般保存在StreamingAssets文件夹或则PersistentData文件夹 首先我们看 ...
- Unity 打包总结和资源的优化和处理
1. Texture,都去掉alpha通道,作为背景展示的图片,基本都没有透明要求,有特殊要求的则放到atlas里面 a. Loading图这类需要比较精细的,则把图片设置为Automatic Tru ...
- Unity资源打包之Assetbundle
转 Unity资源打包之Assetbundle 本文原创版权归 csdn janeky 所有,转载请详细注明原创作者及出处,以示尊重! 作者:janeky 原文:http://blog.csdn.n ...
- 实力封装:Unity打包AssetBundle(大结局)
→→前情提要:让用户选择要打包的文件←← 大结局:更多选择 Unity打包AssetBundle从入门到放弃系列终于要迎来大结局了[小哥哥表示实在写不动了o(╥﹏╥)o]... 经过上一次的教程,其实 ...
- [Unity] unity5.3 assetbundle打包及加载
Unity5.3更新了assetbundle的打包和加载api,下面简单介绍使用方法及示例代码. 在Unity中选中一个prefab查看Inspector窗口,有两个位置可以进行assetbundle ...
- 17 Resources AssetBundle资源打包
Resources在Unity中可以使用www类加载远程文件或本地文件,或是在脚本中定义字段或数组从外部拖入. 在Unity中提供了Resources类读取资源要通过Resources类读取的文件必须 ...
- unity 打包资源及网络请求资源包
第一步 导包 在Assets新建一个Editor目录 新建一个Test类 using UnityEngine; using System.Collections; using UnityEditor; ...
- Unity5.4新版AssetBundle资源打包
(1)新版本 唯一打包API Buildpipeline.BuildAssetBundle (2)在资源的Inpector界面最下方可设置该资源的assetbundleName, 每个assetbun ...
随机推荐
- 解决libvlc_media_player_stop时死锁的方法
转自:http://www.jiazi.cn/blog/?id=56 扩散该解决方法 最近需要使用VLC控件来做一个简单的流媒体播放器,在实施过程中,发现在调用libvlc_media_player_ ...
- Matlab函数
any() 相当于或操作,只要有1,就返回1 all() 相当于与操作,只要有0,就返回0 C = union(A,B): C为A和B的并集.去掉相同元素. C = intersect(A,B) C为 ...
- angular 路由项目例子
angular 路由是我在工作中体验非常便捷的一点, 这是详细的API ,查看API 可以了解很多东西, https://github.com/angular-ui/ui-router/wiki/Qu ...
- fzu1977
题解: 和前两题差不多 只不过变成了有些一定走,有些不一定 代码: #include<cstdio> #include<cmath> #include<algorithm ...
- vue-9-动画
transition: <div id="demo"> <button v-on:click="show = !show"> Toggl ...
- VSTO:使用C#开发Excel、Word【9】
文件背后的代码VSTO支持文档背后的代码,要求开发人员使用VSTO项目中生成的具有预连接上下文和预连接事件的类.这些类有时被称为“代码后面”类,因为它们是与特定文档或工作表相关联的代码.在Word中, ...
- DevExpress v18.1新版亮点——Report & Dashboard Server
用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress Report Server v18.1 的新功能,快来下载试用新 ...
- Ubuntu16.04 安装Teamviewer
有时需要远程控制ubuntu系统的电脑,Teamviewer在linux下也可以进行安装,大致看了下向日葵在linux下配置好像比较麻烦,而且Teamviewer远程控制的流畅性一直不错,就选择安装T ...
- 数位DP详解
算法使用范围 在一个区间里面求有多少个满足题目所给的约束条件的数,约束条件必须与数自身的属性有关 下面用kuangbin数位dp的题来介绍 例题 不要62 题意:在一个区间里面求出有多少个不含4和6 ...
- centos7安装kvm
一. 安装kvm前的准备工作 1. 清除iptables规则 service iptables save service iptables stop 2. 关闭selinux sed -i 's/SE ...