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

编辑器加载与AB包加载组合

解释:

这个 ABResMgr 类是一个资源加载管理器,它用于整合 AB包(Asset Bundle)资源加载和 编辑器模式资源加载。通过这个管理器,可以根据开发环境选择资源加载方式,既支持 运行时使用Asset Bundle加载,也支持在 Unity编辑器中进行调试和测试时,直接从资源文件夹中加载资源。

  • isDebug:一个私有布尔变量,控制是否启用编辑器模式加载。如果为 true,则在Unity编辑器中通过 EditorResMgr 直接加载资源文件夹下的资源;如果为 false,则使用 ABMgr 管理器通过Asset Bundle来加载资源。

  • 构造函数私有化:为了确保这个管理器是通过 BaseManager<T> 基类的单例模式管理。

  • LoadResAsync<T> 方法

    • 编辑器模式(Unity Editor):如果 isDebugtrue,在编辑器中通过 EditorResMgr 实例直接从文件夹中加载资源,文件路径由AB包名和资源名组合而成。
    • 非编辑器模式 或者 AB包模式:如果 isDebugfalse,则通过 ABMgr 实例来从AB包中异步加载资源。
    • T 是资源的类型参数,可以灵活加载不同类型的资源(例如 GameObject, Texture2D 等)。
  • 条件编译 #if UNITY_EDITOR:在开发和测试阶段,条件编译的代码块使得在编辑器模式下可以方便地使用文件夹中的资源,而在构建发布时仍然使用Asset Bundle来加载。

案例:

假设你正在开发一款游戏,并且希望在开发调试阶段方便地从Unity编辑器中加载资源,但在发布后的运行时使用Asset Bundle加载资源。那么可以通过这个管理器来灵活地切换这两种加载方式。

使用案例:

1.假设有以下结构的资源:
  • AB包名: weapons
  • 资源名: sword
2.编辑器资源加载:

在编辑器模式下,直接从文件夹中加载资源:

ABResMgr.Instance.LoadResAsync<GameObject>("weapons", "sword", (res) => 
{// 将资源实例化GameObject sword = GameObject.Instantiate(res);
});
3.Asset Bundle加载:

 在发布模式下,通过AB包加载资源:

ABResMgr.Instance.LoadResAsync<GameObject>("weapons", "sword", (res) => 
{// 将资源实例化GameObject sword = GameObject.Instantiate(res);
}, isSync: false);

总结

  • ABResMgr 实现了资源加载的整合,允许在开发阶段方便调试,同时在发布后使用AB包提升性能。
  • 你可以通过 isDebug 控制资源加载方式。
  • LoadResAsync<T> 方法提供了泛型异步加载的能力,支持回调函数来处理加载完成后的逻辑。

http://www.lryc.cn/news/468002.html

相关文章:

  • 【c++】vector中的back()函数
  • [分享] SQL在线编辑工具(好用)
  • element-ui隐藏表单必填星号
  • 自动驾驶系列—激光雷达点云数据在自动驾驶场景中的深度应用
  • C#删除dataGridView 选中行
  • K8S调度不平衡问题分析过程和解决方案
  • Python中类、继承和方法重写的使用
  • 【Neo4j】- 轻松入门图数据库
  • LeetCode 206 - 反转链表
  • AI生成大片,Movie Gen 可以生成长视频并配上完美的音效,带给观众更好的观看体验。
  • Flink on yarn模式下,JobManager异常退出问题
  • 面对AI算力需求激增,如何守护数据中心机房安全?
  • Connection --- 连接管理模块
  • iconfont图标放置在某个元素的最右边
  • Android10 recent键相关总结
  • Ajax:原生ajax、使用FormData的细节问题,数据的载体
  • 【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据
  • GNOME桌面安装dock
  • 移动app测试有哪些测试类型?安徽软件测试中心分享
  • Android 10.0 截屏流程
  • Axure零基础深入浅出的讲解
  • PyTorch求导相关
  • Halcon基础-瓶盖带角度的OCR批量识别
  • php语法学习
  • JavaWeb合集22-Apache POI
  • DDD重构-实体与限界上下文重构
  • MATLAB Simulink (二)高速跳频通信系统
  • 智能合约分享
  • 【MR开发】在Pico设备上接入MRTK3(二)——在Unity中配置Pico SDK
  • 【Java】探秘正则表达式:深度解析与精妙运用