当前位置: 首页 > ops >正文

【unity游戏开发入门到精通——通用篇】AssetBundle(AB包)和AssetBundleBrowser的使用介绍

文章目录

  • 前言
    • 1、什么是AssetBundle?
    • 2、AB包与Resources系统对比
    • 3、AB包核心价值
  • 一、AB包打包工具Asset Bundle Browser
    • 1、下载安装AssetBundles-Browser
    • 2、打开Asset Bundle Browser窗口
    • 3、如何让资源关联AB包
  • 二、AssetBundleBrowser参数相关
    • 1、Configure 配置页签
    • 2、Build 构建页签
      • 2.1 参数
        • (1)BuildTarget: 目标平台
        • (2)Output Path: 目标输出路径
        • (3)Clear Folders:重新打包时是否清空目标路径的文件夹
        • (4)Copy To StreamingAssets
        • (5)Compression 压缩方式
        • (6)Exclude Type Information
        • (7)Force Rebuild
        • (8)Ignore Type Tree Changes
        • (9)Append Hash
        • (10)Strict Mode
        • (11)Dry Run Build
        • (12)Build打包按钮
      • 2.2 实战
    • 3、Inspect 检查页签
  • 三、代码加载AB包和AB包中的资源
    • 1、同步加载AB包和AB包中的资源
      • 1.1 AssetBundle.LoadFromFile同步地从指定路径加载AB包,返回加载后的AB包。
      • 1.2 AssetBundle.LoadAsset 同步的从一个已加载的AB包中加载指定资源
      • 1.3 同一个AB包可以用于加载多个不同资源
    • 2、异步加载AB包和AB包中的资源
      • 2.1 AssetBundle.LoadFromFileAsync 异步地从指定路径加载AB包,返回异步加载AB包的类
      • 2.2 AssetBundle.LoadAssetAsync 异步地从一个已加载的AB包中加载指定资源
      • 2.3 调用协程进行异步加载
      • 2.4 示例
      • 2.5 AB包不能加载两次
    • 3、卸载AB包和AB包中的资源
      • 3.1 AssetBundle.Unload 卸载指定的AB包
      • 3.2 AssetBundle.UnloadAllAssetBundles 卸载所有已加载的AB包
  • 四、AB包的依赖包
    • 1、手动加载AB包的依赖包
    • 2、通过主AB包的依赖关系清单文件加载AB包的依赖包
  • 五、封装AB包资源管理器
    • 1、继承MonoBehaviour的泛型单例模式基类
    • 2、封装AssetBundle管理器
    • 3、调用测试
  • 六、总结
  • 专栏推荐
  • 完结

前言

1、什么是AssetBundle?

AssetBundle 是 Unity 中的一种资源打包格式,用于将游戏资源(如模型、纹理、音频等)分块压缩,便于动态加载和更新。开发者可以将资源按需打包成多个 AssetBundle,运行时通过网络下载或本地加载,减少初始包体大小,支持热更新和资源管理优化。

  • 特定平台的资源容器:针对不同平台(Windows/Android/iOS等)优化的资源压缩包
  • 资源集合:包含模型、贴图、材质、预设体、音频等资源,不包含C#代码
  • 灵活部署:可存储在任意位置(本地或远程服务器)

2、AB包与Resources系统对比

特性Resources系统AssetBundle系统
资源位置必须放在Resources文件夹任意位置
资源管理单个资源加载资源集合打包
更新能力只读,无法更新支持动
http://www.xdnf.cn/news/11943.html

相关文章:

  • 数据结构期末PTA选择汇总
  • L1-019 谁先倒 (15 分)
  • [安卓/ios辅助工具]给按键精灵脚本做一个日志悬浮窗
  • 制造业数字化转型解决方案及应用
  • rk3588开发板实现磁盘自动挂载vmware共享文件夹设置
  • C学习--内存管理
  • 2. 库的操作
  • 企业如何抵御复杂网络攻击?
  • Delphi用if else实现 select case、switch语句功能,实现case 以字符串为分类条件。
  • Java对象创建过程
  • 操作系统入门:核心概念与设计逻辑
  • 数字孪生在智能制造中的实践:某汽车总装车间的全流程仿真优化
  • https和http有什么区别-http各个版本有什么区别
  • DINO-R1
  • 商务合同范本智能审核系统 AI 大模型处理方案
  • 探索分布式存储与通信:去中心化共享及通訊(DSAC)
  • 区块链跨链通信:使用 Cosmos SDK 实现链间互操作
  • 手动清理C盘文件的一些方法
  • 共聚焦显微镜—赋能光学元件精密质控
  • C语言获取数组长度方法大全(附带实例)
  • gateway 网关 路由新增 (已亲测)
  • Python训练营打卡 Day44
  • linux shell脚本硬件定时检测通过邮箱警告管理人员
  • LLM之RAG实战(五十四)| 复杂文档处理RAG框架:Ragflow
  • 振动力学:弹性杆的纵向振动(固有振动和固有频率的概念)
  • [蓝桥杯]填字母游戏
  • 短视频矩阵系统源码新发布技术方案有那几种?
  • 2025.6.4总结
  • 霍夫曼编码详解
  • qiankun模式下 主应用严格模式,子应用el-popover 点击无效不显示