开发者社区> chinar-yunxi> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Unity打包/读取AssetBundle资源全教程

简介: Unity 资源AssetBundle打包 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chi...
+关注继续查看

Unity 资源AssetBundle打包


本文提供全流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)



Chinar —— 心分享、心创新!

助力快速完成资源进行 AssetBundle 打包与读取

为新手节省宝贵的时间,避免采坑!


Chinar 教程效果:
这里写图片描述



全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

AssetBundle Description —— 资源打包


AssetBundle 的具体定义网上诸多大神的解释很是细致,一搜一大片,在这里我都不再班门弄斧了

这里 Chinar 只简单说下为什么要用它
1. 如果所有的资源文件,全部打包到程序中,那么程序的安装包就会很大

AssetBundle 文件放在服务器上,用的时候再从服务器进行加载,所以这个包根本就不在程序当中
2. 那就是最主要的热更新了
发布软件后,开发者进行很小的一次更新,都需要重新打包发布

而对于用户来说,需要重新下载进行安装,无疑导致了用户体验不好。只要有更新,用户就重新安装程序

AssetBundle 技术,可以在用户重装软件的情况下,做到更改程序中的一些资源,设置

开发者可以实时的完成更新,应用到所有用户的客户端上,非常方便

举个栗子黑白88


2

AssetBundle Name —— AssetBundle名称设置


我们如何将一个需要的资源打包到 AssetBundle 中呢?

Inspector 面板最下方,有一提供我们预览的小窗口,可以拖动(如果没有,就在最下方缩小着呢,拖上来即可)

AssetBundle 选项中, New 给资源包创建/指定一个名称

注意-命名规范:
1. 必须小写字母,就算你大写了Unity也会自动转小写这里写图片描述
2. 命名规范:名称后要加 .unity3d / .assetbundle (例如:globule.unity3d)

(就算你起名的时候不加 .unity3d / .assetbundle也是可以读取的(但不规范,不推荐!))
这里写图片描述
3. 名称+“/”+另一个名称,会自动生成子选项(打包时,会自动生成一个新的名称文件夹) 这里写图片描述

(进行 AssetBundle 打包操作后,会生成对应名称的 AssetBundle 文件:globule. unity3d)

如果有子选项的情况下打包后,会生成一个chinar文件夹,存放子选项名称的文件
举个栗子黑白88
这里写图片描述


3

Editor Menu —— 创建菜单按钮


写一个编辑器脚本,菜单栏中添加一个按钮,用来完成 AssetBundle 打包操作

为了规范,要创建一个 Editor文件夹,将脚本放在该目录中

点击按钮会在工程文件内, Assets 文件外,自动创建一个名为 ChinarAssetBundles 的文件夹

举个栗子黑白88
这里写图片描述

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个图片、一个纹理,一个预设物进行打包
举个栗子黑白88
这里写图片描述


5

BuildPipeline.BuildAssetBundles() —— 打包函数


Unity 提供的打包函数,有多个重载函数

具体有什么不同,请大家查询下官方Api或者搜索下网络大神的讲解,这里都不一一赘述了

无特别情况下,就用这一个就够了

BuildPipeline.BuildAssetBundles("ChinarAssetBundle",BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);


支持

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!


先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


1 —— 云服务器超全购买流程 (新手必备!)

2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

3—— Windows 服务器配置、运行、建站一条龙 !

4 —— Linux 服务器配置、运行、建站一条龙 !



70

技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
企业级运维之云原生与Kubernets实战课程 - 第一章第5讲 Kubernetes存储
本小节主要内容为存储卷介绍,包括:Persistent Volumes(PV)、Persistent VolumesClaim(PVC)的特点及使用。
42 0
企业级运维之云原生与Kubernetes实战课程 - 第二章第6讲 阿里云容器服务集群日志与监控
本小节主要内容为K8s日志服务与监控,包括日志服务简介、日志服务采集、集群监控。
32 0
企业级运维之云原生与Kubernetes实战课程 - 第二章第7讲 实验二:应用部署进阶
该实验是“云原生与Kubernates基础课程”的配套实验。 涉及ACK集群上ingress、pod,以及日志服务、hpa的应用部署。 进行该实验的前提:需熟悉上述理论概念,建议完成配套理论课程学习。
67 0
企业级运维之云原生与Kubernetes实战课程 - 第三章第6讲 实验三:灰度发布
通过ingress实现灰度发布,实现权重灰度和根据header灰度。
35 0
企业级运维之云原生与Kubernets实战课程 - 第一章第6讲 Kubernetes网络
本小节主要内容为K8s容器网络介绍,包括:网络约束和目标、节点内的Pod通信、跨节点的Pod通信、Pod与Netns的关系、典型容器网络实现方案。
29 0
阿里开源的分布式事务框架 Seata部署
部署Seata服务,并注册到Nacos里面
441 0
Unity框架与资源打包
对象池一种通用型的技术,在其他语言中也会用到 池线程池、网络连接池,池是一个思想,将不用的东西暂时用池存起来,等到再次使用的时候再调出来用,节省CPU的调度 对象C#的任何一个类都可以实例化一个对象Object Unity中的游戏对象GameObject 思路最开始的时候,池中没有对象,需要生成。
1494 0
[Unity]AssetBundle资源更新以及多线程下载
前言 此文章适合不太了解资源加载的萌新,有了入门基础之后再去github上搜大牛写的专业的资源加载方案才能得心应手,不然的话会看的很吃力或者说一脸懵逼。Unity里面关于资源加载我们都知道是下载更新AssetBundle,关于AssetBundle我之前的文章已经详细介绍过,没看过的朋友可以在看一下。
2653 0
+关注
chinar-yunxi
有人天生为王、有人败者为寇 脚下的路如果不是自己的选择,那么旅途的终点在哪?也就没人知道....
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载