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

AB包资源管理器

简介

ABMgr(Asset Bundle Manager)类是一个用于管理 Unity 中 AssetBundle 资源加载的管理器。它通过字典缓存和管理加载的 AB 包,同时支持同步和异步加载。还包含了卸载和清理 AB 包的方法。

功能解析:

  1. 主包加载与依赖管理

    • 主包加载:通过 LoadMainAB() 加载主包,并使用 AssetBundleManifest 记录 AB 包之间的依赖关系。
    • 依赖包加载:通过 LoadDependencies() 方法,能够自动加载 AB 包的依赖项,确保目标 AB 包及其依赖项被正确加载。
  2. 字典缓存 AB 包

    • 使用 Dictionary<string, AssetBundle> abDic 来存储已加载的 AB 包,防止重复加载带来的错误和性能浪费。
  3. 资源加载

    • 提供了泛型Type名称三种资源加载方式,支持同步和异步两种模式。
    • 异步加载使用协程,通过 AssetBundle.LoadFromFileAsyncAssetBundleRequest 来实现异步资源加载,并且通过 UnityAction<T> 回调函数将结果返回给调用方。
  4. 协程机制

    • 使用 StartCoroutine 来异步加载资源。协程函数会在加载过程中持续等待,直到 AB 包和资源加载完成,才返回给调用者。
  5. 资源卸载与清理

    • UnLoadAB(string name) 用于卸载特定的 AB 包。
    • ClearAB() 可以卸载所有 AB 包,同时清空字典缓存。
  6. 支持的平台

    • 根据不同的平台(PC、Android、iOS),MainName 会返回不同的主包名称,确保在多平台项目中的兼容性。

AssetBundle(AB包)解释

AB包介绍

将AssetBundle面板设置为下图

选中Browse

在项目下方创建AssetBundles文件夹

继续在AssetBundles文件夹下创建PC文件夹

选中PC

代码案例:

假设我们有一个名为 characters 的 AB 包,里面有一个名为 Hero 的预制体资源。我们想要异步加载并实例化该预制体。

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ABMgrExample : MonoBehaviour
{GameObject obj;private void Start(){ABMgr.Instance.LoadResAsync<GameObject>("characters", "player", (ABObj) =>{obj = Instantiate(ABObj);Debug.Log(obj.gameObject.name);});Debug.Log("Start");}
}

解释:

  1. 加载预制体资源ABMgr.Instance.LoadResAsync<GameObject>("characters", "Hero", OnHeroLoaded) 会异步加载 characters AB 包中的 Hero 预制体。
  2. 回调函数:加载完成后,OnHeroLoaded 方法会被调用,heroPrefab 就是我们从 AB 包加载出来的资源。使用 Instantiate 来实例化这个预制体。

这个案例展示了如何利用 ABMgr 异步加载资源并进行实例化。


http://www.mrgr.cn/news/55602.html

相关文章:

  • 价值投资(Value Investing)
  • A Graph-Transformer for Whole SlideImage Classification文献笔记
  • 查找与排序-选择排序
  • 深度学习--CNN实现猫狗识别二分类(附带下载链接, 长期有效)
  • 在Rocky Linux上安装Docker
  • LCWLAN设备的实际使用案例
  • CISP/NISP二级练习题-第一卷
  • c语言typedef的使用 Java短路逻辑运算符
  • Linux 查看进程内存占用的 6 种方法,建议点赞收藏备用,排查问题好帮手
  • 详解23种设计模式——第二部分:结构型模式
  • 计算机基础 -- 计算机补码的原理
  • 数据库中`cast(x as type)` 或 `convert(type, x)` 函数的处理
  • Git合并多个分支中的提交内容
  • 用PYTHON可视化分析热门MEMECOIN的代码思路参考。
  • boost搜索引擎
  • 边缘计算与联邦学习:探索隐私保护和高效数据处理的结合
  • 关于技术管理者的一些思考
  • hashCode的底层原理
  • windows 上验证请求接口是否有延迟
  • 进程:消息队列
  • 用ESP32驱动stt7735 TFT屏幕
  • 1-2.Python 引入 - 变量(变量定义、变量命名、动态类型)
  • System:oneshot类型的service
  • 多ip访问多网站
  • 数据库权限提升GetShell
  • 配置Typescript环境