进阶,异步加载AB包,请看《异步加载有依赖的AB包》

目录

为什么AB包会有依赖关系呢?

步骤

代码

为什么AB包会有依赖关系呢?

例如导入一个预制体的时候,预制体可能有图片,如果只把这个预制体打进AB包,那这个预制体的图片就没有打入AB包内,因此,要额外将图片导入另一个AB包。那么,这两个AB包就有依赖关系。依赖关系为:放有预制体的AB包依赖放有图片的AB包。

记录依赖关系的是配置文件(后缀名是.manifest)。其中,有两个配置文件会记录依赖关系。一个是主AB包,即和打AB包的文件夹同名的配置文件;另一个是预制体的AB包的配置文件。

要把预制体连它的纹理贴图加载出来,步骤如下:

1、加载主AB包,注意:不是放有所有AB包的文件夹,而是和文件夹同名的AB包——主AB包。

2、获取主AB包的配置文件。

3、获取预制体AB包依赖哪些包,获取这些依赖包的包名。

4、加载所有依赖包。

5、加载预制体AB包。

------------------获取AB包完毕---------------------------------

6、从预制体AB包中获取预制体。

7、实例化预制体(显示到场景中)。

代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class Load : MonoBehaviour
{//处理依赖关系的加载,必须加载主AB包,因为依赖关系都存储在主AB包中void Start(){//加载主AB包(不是ab文件夹,是ab文件!)AssetBundle main = AssetBundle.LoadFromFile("主AB包‘路径’(无后缀名)");//获取AB包的配置文件AssetBundleManifest manifest = main.LoadAsset<AssetBundleManifest>("AssetBundleManifest");//分析预制体所在AB包,依赖哪些AB包string [] deps= manifest.GetAllDependencies("预制体AB包‘名’(无后缀名)");//加载依赖的AB包for(int i=0;i<deps.Length;i++){AssetBundle.LoadFromFile("存放所有文件夹的路径/" + deps[i]);}//加载预制体所在的AB包AssetBundle imageab= AssetBundle.LoadFromFile("预制体AB包路径(无后缀名)");//加载预制体(内部资源)GameObject prefab = imageab.LoadAsset<GameObject>("预制体名字");//附://实例化GameObject gob = Instantiate(prefab);//设置父物体gob.transform.SetParent(GameObject.Find("/Canvas").transform);}}

unity|加载AB包|有依赖关系的AB包相关推荐

  1. R包操作相关:安装、卸载、加载、移除、已经安装的包、包的路径、函数查看等

    R包操作相关:安装.卸载.加载.移除.已经安装的包.包的路径.函数查看等 查看已经加载的R包: (.packages()) 列出包所在的路径: .libPaths() 查看已经安装的包的详细信息: i ...

  2. R包库安装及数据加载:一次安装多个R包、一次加载多个R包

    R包库安装及数据加载:一次安装多个R包.一次加载多个R包 目录 R包库安装及数据加载 R包安装 一次安装多个R包 加载需要的R包

  3. IDEA maven项目查自动查看依赖关系,解决包冲突问题

    IDEA maven项目查自动查看依赖关系,解决包冲突问题 参考文章: (1)IDEA maven项目查自动查看依赖关系,解决包冲突问题 (2)https://www.cnblogs.com/jpfs ...

  4. 在RHEL5.0中用YUM解决RPM包的依赖关系

    一. 使用yum实现本地安装RPM包的依赖关系: 1. 添加一块硬盘,新分区并挂载到/install目录 (也可以是其他目录)或直接在现有文件树中建一个新目录如/install 2. 将linux的光 ...

  5. andriod studio 查看项目依赖_Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图...

    Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项 ...

  6. webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度...

    一:背景 因为项目功能越加越多,打包后的体积越来越大,导致首页展示的时候速度比较慢,因为要等压缩的js的包加载完毕. 首页展示的时候只需要对应的js,并不需要全部的js模块,所以这里就可以用按需加载, ...

  7. Unity加载进度条

    转载自:http://www.58player.com/blog-2537-89690.html 背景           通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题 ...

  8. Unity加载倾斜摄影模型/激光点云,开源

    [重大更新]现已支持WebGL 业余时间尝试了下用Unity加载倾斜摄影模型/激光点云,目前支持Bentley ContextCapture生成的3MX格式 源码见 https://github.co ...

  9. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图

    IntelliJ IDEA使用教程 (总目录篇) Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Pr ...

最新文章

  1. LINQ to SQL语句之 Count/Sum/Min/Max/Avg
  2. python流程控制语句-python学习 流程控制语句详解
  3. 操作系统学习笔记-2.1.4进程通信
  4. 作为程序员,你怎么看待16岁女生产子?
  5. 板式橡胶支座弹性模量怎样计算_Midas Civil支座模拟的详细解决方法
  6. 击溃音乐服务器第一人!周杰伦新歌首发,QQ音乐服务器一度崩溃
  7. 看完阿里的代码规范,立马学会代码分层,再也不会被同事怼
  8. 题目57 6174问题
  9. Mybtis进行mysql数据库的修改表名操作
  10. tomcat之servlet容器
  11. visio导出图片模糊的解决方案
  12. [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
  13. 杭州电子科技大学 计算机专硕复试分数线,2020杭州电子科技大学考研复试分数线已公布...
  14. Rayson API 框架分析系列之2:API服务开发
  15. 在树莓派上驱动CSI摄像头
  16. ASP中Split分割字符串函数的实例用法
  17. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java科研信息管理503pp
  18. Android设置透明状态栏,仿ios状态栏
  19. 从你的全世界路过---陌陌X-SIGN还原
  20. i tell you 微软各种 操作系统 应用程序 开发工具 下载

热门文章

  1. golang channel
  2. 什么是模块化?模块化怎么实现?
  3. 【C++碎碎念】面向对象(封装与访问控制、构造函数与析构函数、拷贝函数)
  4. VMware10虚拟机怎么安装win7x64位系统
  5. 详解C语言自定义类型(结构体,位段,枚举,联合)
  6. ORA-22858 invalid alteration of datatype varchar2转化clob
  7. java ssssss_javassssss
  8. 刘大拿python_零基础Python知识点回顾(一)
  9. 假装旅行在西班牙之高铁票价分析
  10. 优美动听的葫芦丝名曲