Assetbundle包的依赖关系与加载方式的深入

两种压缩方式:Lzma (默认的), Lz4

四种加载方法:

1,从内存中加载:LoadfromMemory()内存

2,从本地加载:LoadFromFile

3,从本地或服务器加载www(下面会提到)

4,从服务器端加载unityWebRequest

加载依赖资源包

1,获得总的依赖配置(streamingAssets)

2,根据名称找到目标加载资源的所有依赖

3,加载所有的依赖资源

加Lua脚本Lua格式改为bytes后缀文件

资源路径:

Application.datapath;

Application.streamingAssetsPath(只读不可写)

Application.persistentDataPats(特殊 可读可写 运行时!)

Application.temporarycachePath

1,Windows.manifest(总的配置文件)

依赖关系:一个东西要完整的显示出来,必须要另外一个东西。

2,单个Assetbundle包配置文件:里面记录的是

(1)单个Assetbundle里面的资源

(2)记录单个Asssetbundle的依赖关系

bundle包的依赖关系加载:

(哈哈哈 机智如我 上图是举例 )

第一个的:

加载A需要做些什么事情那?

1,加载B和C

2,加载A

卸载A?

1,先卸载B,C依赖关系

2,判断B,C是否有依赖 B,C卸载

第二个:

加载A?

1,判断依赖关系A判断B,C  |B,C判断D

卸载B?

1,只能卸载B,D关系

卸载C?

1,卸载C,D关系

2,卸载D

插个小话题

引用计数:

Gc机制也是存在引用计数的关系: 被谁引用(List<>) 引用的谁(List<>)

下面是bundle包三块内存存放与加载方式

1,bundle包放在网络用WWW加载然后加载到本地,bundle包在本地用Assetbundle.LoadFromFile方法加载(内存镜像)

释放内存:Assetbundle.Unload(false)

2,解压Assetbundle:Assetbundle.Load()将镜像里的zip包解压出来

释放内存:Resource.Unloadasset(obj)只能卸载obj类型 shader 网格 材质 贴图都不能卸载 而Resource.Unloadunusedasset()用这个API释放 shader 网格 材质 贴图

3,GameObjece.instance使用解压出来的资释

释放内存:Destroy()

原文地址:https://www.cnblogs.com/-831/p/12289815.html

时间: 2024-07-30 04:06:13

Assetbundle包的依赖关系与加载方式的深入的相关文章

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

Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目.一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入. 第六个按钮:Execute Maven Goal 弹出可执行的 Maven 命令的输入框.有些情况下我们需要通过书写某些执行命令来构建项目,就可以通

【原创】我所理解的资源加载方式

最近转战unity3d,接的第一个任务就是关于资源管理的部分. 由于项目是web和standalone(微端)并存的,所以希望保证业务逻辑尽量保持一致,跟之前ios,android的执行流程略有不同,比如在web模式下,FILE类是被禁用的,所以指望通过写文件来操作相关功能参数的方法是不可行的.下面,是我对这方面的一些理解.本文中如果没有特殊说明,下载的资源都是AssetBundle web程序的运行流程大致是 首先加载web.html,这是整个程序的入口 他会加载相关的unity3d文件(本例

浅谈Entity Framework中的数据加载方式

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Architecture.aspx,其中的一系列文

hive--udf函数(开发-4种加载方式)

h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; background-color: #008eb7; padding: 3px; margin: 10px 0px } UDF函数开发 标准函数(UDF):以一行数据中的一列或者多列数据作为参数然后返回解雇欧式一个值的函数,同样也可以返回一个复杂的对象,例如array,map,struct. 聚合函数(UD

Linux驱动的两种加载方式过程分析

一.概念简述 在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用.静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低.若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间. 动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块,采用这种动态加载的方式便于驱动程序的调试,同时可以针对产品的功能需求,进行

链接库DLL的概念,加载方式的区别

使用LR进行基于windows socket协议做接口测试,只提供了lr_load_dll方法来动态加载动态链接库.之前学习阶段,对TinyXML的学习,使用的静态链接库,当时在程序调用的时候方法也跟LR里的不一样,那问题来了:lib和dll的区别是什么,每种链接库有多少种加载方式,怎么加载呢. 链接库可以向应用程序提供一些函数,变量和类.动态链接库的动态调用(也叫显式调用,手工加载)我是可以运用了,但是静态调用(也叫隐式调用,自动加载).静态链接库:lib中的函数不仅被连接,全部实现都被直接包

javascript 的加载方式

本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性 一.同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续

Unity资源加载路径及加载方式小结

Unity3D中的资源路径路径属性 路径说明Application.dataPath 此属性用于返回程序的数据文件所在文件夹的路径.例如在Editor中就是Assets了.Application.streamingAssetsPath 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径.放在Unity工程StreamingAssets文件夹中的资源发布后都可以通过这个路径读取出来.Application.persistentDataPath 此属性用于返回一个持久

Linux共享库两种加载方式简述

动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是在程序执行时按需载入,其执行代码可以同时在多个程序中共享.由于在编译过程中无法知道动态库函数的地址,所以需要在运行期间查找,这对程 序的性能会有影响. 共享库 对于共享库来讲,它只包括2个段:只读的代码段 和可修改的数据段.堆和栈段,只有进程才有.如果你在共享库的函数里,分配了一块内存,这段内存将被算在调用该函数的进程的堆中.代码段由于其