首页 > 其他分享 >Unity热更学习笔记--AB包的依赖 0.98

Unity热更学习笔记--AB包的依赖 0.98

时间:2024-05-02 19:11:09浏览次数:26  
标签:包中 AB -- Unity 依赖 model 资源 加载

AB包的依赖

接上一小结。

在这里我们新建一个红色材质球,赋值给Cube预制体。此时不对材质球进行AB包分类,再次进行打包。运行脚本,发现红色cube成功的从AB包中加载出来。尽管我们没有将cube所依赖的材质球进行打包分类,但是打包时候unity会自动将包中的物体相关依赖打入包中【图三所示】。对于所依赖的资源我们如果不进行打包设置,也可以正常使用。

img

image-20240502143653075

image-20240502144138523

如果还是这个红色的材质球,需要被其它AB包中的预制体所使用呢?每个AB包里会默认打入一个材质球显然有些浪费AB包的空间。

我们可以设置某个公共资源打入到具体的包中,而在加载使用AB包中的资源时候,把此AB包相关依赖的其它AB包也同时加载出来即可满足使用。也就是说我要加载A资源时候,会检查A资源依赖的其它资源包(可能是B、C),将ABC同样加载到内存中,这样在使用A的时候,不会造成资源丢失问题。

img

private void Awake()
  {
      //获取AB包 打包的文件已经拷贝到streamingAssets文件下 从此位置加载
      //注意!AB包不能重复加载
      ab  = AssetBundle.LoadFromFile(Application.streamingAssetsPath +"/"+"model");
      _image = GameObject.Find("Canvas/Image").GetComponent<Image>();
      //加载主包资源  
      mainAB = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + "StandaloneWindows");
      //获取主包中的存储的包和包之间的依赖关系
      AssetBundleManifest manifest = mainAB.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
      //获取model资源相关的依赖
      string[] dependencies = manifest.GetAllDependencies("model");
      foreach (var dependency in dependencies)
      {
          //加载依赖的ab包
          AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + dependency);
      }
  }

其加载的就是AB主包资源中的mainfest文件,读取其中存储的model包的AB包资源依赖,从而将依赖资源所在的AB包也加载到内存中。

img

标签:包中,AB,--,Unity,依赖,model,资源,加载
From: https://www.cnblogs.com/TonyCode/p/18170452

相关文章

  • VMware Workstation Pro各版本下载链接汇总(特全!!!)
    VMwareWorkstationPro各版本下载链接汇总(10、11、12、14、15、16官网全版本)整理不易,点赞关注一下吧工具软件:VMwareWorkstationPro1.系统要求VM17:硬件要求较高,Windows10或更高版64位。VM16:硬件要求较高,Windows10或更高版64位。VM15:硬件要求中等,Windows7或更高版64......
  • 个人的一种设想:能否使用元强化学*算法解决路径导航问题 —— 快速的适配于相似结构的
    pathfinding是人工智能领域的一个老问题,随着humanoid的应用火热起来这个问题也随之再度受关注。比较传统的人工智能方法一般都是使用A*这样的启发式的算法,不仅在2D领域同时也在3D(Voxelspace)领域有着较好的表现,不过随着深度学*和强化学*的*些年的快速发展也就有了一些使用深度强......
  • 从零开始:Django项目的创建与配置指南
    title:从零开始:Django项目的创建与配置指南date:2024/5/218:29:33updated:2024/5/218:29:33categories:后端开发tags:DjangoWebDevPythonORMSecurityDeploymentOptimizationDjango简介:Django是一个开源的高级PythonWeb框架,由法国人GuidoZempe于2003年......
  • idea在类和接口上面自动生成注释
    详细教程:https://www.cnblogs.com/ya-qiang/p/9462766.html1、File>>Settings…>>Editor>>FileandCodeTemplates/***@Auther:Zxd*@Date:${YEAR}/${MONTH}/${DAY}${TIME}*@Description:*/  ......
  • 程序员天天 CURD,怎么才能成长,职业发展的思考 ?
    前言关于程序员成长的话题,我前面写过一篇文章-程序员天天CURD,职业生涯怎么发展的思考。现在回头看,对程序员这个职业发展的认识以及怎么发展还是有一些局限性。有一句话是这么说的:人的成长就是不断认为以前的自己是一个“傻逼”的过程。这句话用词很激烈但成长也许就是如此。人......
  • 树链剖分
    树链剖分在DFS树上把连续的一段有祖先关系的单独开一个序列存储。查询每一个位置,不断地往链头条,然后跳到链头的父亲的链上\(\dots\)如果按DFS徐直接搞,会被以下数据hack可行的序列有\(:[110],[2,10],[3,12],[4,13],[5,14],[6,15],[7,16],[8,17],......
  • 微机结构
    各个硬件的工作原理(一),主存器的基本组成存储体(数据在存储诸体内按地址存储)1,读写式存储器2,只读式存储器3,高速缓冲存储器2.寄存器:MAR(地址寄存器):位数反映存储单元的个数_寄存器MOR(数据寄存器)位数=存储字长存储单元:每个存储单元存放一串二进制代码存储字:存储单元中二进......
  • 文本到语音(tts)
    WebSpeechAPI使你能够将语音数据合并到Web应用程序中。WebSpeechAPI有两个部分:SpeechSynthesis语音合成(文本到语音TTS)和SpeechRecognition语音识别(异步语音识别)SpeechSynthesis:语音服务的控制器接口,获取设备上关于可用的合成声音的信息,开始、暂停语音,或除此之外......
  • 爬虫概述
    一、什么是爬虫爬虫(Crawler)是一种按照既定规则,在网络上自动爬取信息的程序或脚本。也称为网际网路蜘蛛(InternetSpider)或网络机器人(WebRobot)。爬虫可以自动抓取网络信息,主要用于网站数据采集、内容监测等。二、爬虫能做什么1、搜索引擎搜索引擎利用爬虫发现网络上的......
  • 操作系统
    (一)操作系统:管理控制软硬件资源,合理组织计算机工作流程,以方便用户有效使用计算机的程序集合。操作系统特点:1.与硬件相关,与应用无关。2,核心3中断驱动4无时不在,无处不有特征:1并发性:宏观并行,微观串行2.共享性:资源可供多个并发进程共同使用。3虚拟性4异步性(二)操作系......