首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AssetBundle详解

使用AssetBundle动态加载资源首先要获取AssetBundle对象,第二步才是从AssetBundle中加载目标资源。...要在运行时加载AssetBundle对象主要可以分为两大类途径: 先获取WWW对象,再通过WWW.assetBundle获取AssetBundle对象 直接获取AssetBundle 下面我们就具体分析一下这两种途径...在下载完 AssetBundle 后,你同样可以使用 DownloadHandlerAssetBundle 类的 assetBundle 属性来加载 AssetBundle,这就和使用 AssetBundle.LoadFromFile...从 AssetBundle 中加载 manifest 完全和从中加载其他资源一样,如下: AssetBundle assetBundle = AssetBundle.LoadFromFile(manifestFilePath...比如我们想要加载一个名叫“assetBundle”的 AssetBundle 的所有依赖: AssetBundle assetBundle = AssetBundle.LoadFromFile(manifestFilePath

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Unity游戏开发】AssetBundle杂记--AssetBundle的二三事

    二、收集整理的一些AssetBundle资料 1.Unity AssetBundle5讲系列 Unity5-ABSystem(一):AssetBundle原理 Unity5-ABSystem(二):AssetBundle...导出 Unity5-ABSystem(三):AssetBundle加载 Unity5-ABSystem(四):AssetBundle依赖 Unity5-ABSystem(五):AssetBundle内存...资源打包控制 Unity AssetBundle加载音频,无法播放音效并报错的坑 三、AssetBundle踩坑与经验集锦   1、先说一个遇到的坑,当大量(几百个)AssetBundle加载的时候(...,如果你没有这样的需求,那么建议你不要使用这个坏东西,闹心~~ 当你选择了AssetBundle之后,以及我开始喷AssetBundle之前,我们需要对AssetBundle的工作流程做一个简单的介绍:...AssetBundle可以分为打包AssetBundle以及使用AssetBundle 打包需要在UnityEditor下编写一些简单的代码,来取出你要打包的资源,然后调用打包方法进行打包 1 Object

    3.4K31

    Unity网络交互☀️AssetBundle三、:AssetBundle的内存优化

    卸载AssetBundleAssetBundle.Unload 详细介绍见:地址 卸载从AssetBundle加载的Assets: 对于懂AssetBundle加载的Assets,比如纹理、材质...、音频片段和动画片段有以下两种方式卸载 a、AssetBundle.Unload(true) b、Resources.UnloadUnusedAssets() 该接口会卸载掉所有没有使用的Assets,...需要注意的是: 1)、它的作用范围不仅仅是当前的AssetBundle,而是整个系统 2)、它不能卸载从当前AssetBundle文件中加载的仍在使用的Assets 卸载实例化出的GameObject...属性所加载的AssetBundle对象会被Web Stream数据持有引用, AssetBundle也会引用到从他所加载的所有Assets, WWW和AssetBundle对象只是一个结构指向了Web...如下图所示,即当AssetBundle对象(WWW.assetbundle)和WWW对象释放后,Web Stream数据所占的内存也会被系统自动回收 大家还有什么问题,欢迎在下方留言!

    9110

    Unity网络交互☀️AssetBundle二、:如何下载、加载与卸载AssetBundle

    下载AssetBundle Unity提供了两种方式从服务器下载AssetBundle文件: 1、非缓存机制 2、缓存机制 1️⃣ 非缓存机制 通过创建一个WWW实例来对AssetBundle文件进行下载...当把AssetBundle文件从服务器下载到本地后,需要将其加载到内存中并创建AssetBundle文件内存对象。...以下是两种加载AssetBundle文件的方式(Unity原提供4个) 1️⃣ WWW.assetbundle 通过WWW.assetbundle属性创建一个AssetBundle文件的内存对象。...myLoadedAssetBundle = www.assetBundle; } 2️⃣ AssetBundle.CreateFromFile AssetBundle.CreateFromFile...AssetBundle名称相同,但不同的是,AssetBundle Variant的AssetBundle之间将有共同的内部id,所以它们可以之间可以任意切换。

    16410

    Unity AssetBundle打包及分包策略

    一、Unity AssetBundle概述 Unity AssetBundle是一种用于加载和管理游戏资源的工具。它将游戏资源打包成二进制文件,以便在游戏运行时动态加载和释放。...例如,所有声音资源可以打包成一个AssetBundle,所有Shader可以打包成一个AssetBundle,所有模型可以打包成一个AssetBundle,所有材质可以打包成一个AssetBundle。...例如,把在某一个时间内使用的所有资源打包成一个AssetBundle,或者按照关卡分,一个关卡需要的所有资源(包括角色、贴图、声音等)打包成一个AssetBundle。...二、实例化AssetBundle加载 在Unity中,可以通过实例化AssetBundle来加载和管理资源。开发者可以根据需要在运行时动态加载和卸载AssetBundle,以实现资源的动态管理和优化。...三、AssetBundle的优化策略 在使用AssetBundle时,开发者还需要关注一些优化策略。首先,要尽可能地减少AssetBundle的数量和大小,以降低游戏体积和加载时间。

    98010

    Unity打包以及加载AssetBundle思路

    的信息,读取完之后就没用了,我们把它卸载掉,节省内存空间 AssetBundle abManifestBundle = AssetBundle.LoadFromFile(GetFullLoadAbPath...但是这样存在一个问题,就是一个AB包里可能有很多资源,我们加载这些资源的时候,可能会出现重复加载同一个AssetBundle包的情况,这很费时间,所以我们要把加载过的AssetBundle存在内存中,每次加载...= null && cacheMap[deps[i]].request.assetBundle == null)) { AssetBundle...我们每次加载资源时,都先要加载其所在的AssetBundle包,并且要记下加载资源AB包被引用的次数,这样方便我们在卸载AssetBundle时,检测当前这个要卸载的AssetBUndle包还有没有资源引用它...,如果没有资源引用,我们才启用UnLoad卸载该AssetBundle

    1.6K10

    Unity网络交互☀️AssetBundle一、:用途、创建、解读、接口

    具体使用流程: 1、利用脚本创建AssetBundle文件 2、上传到服务器 3、下载到本地 4、加载 创建AssetBundle资源 1️⃣ AssetBundle可打包的资源 a、任意Unity引擎可识别的资源...第二个选项用于设置AssetBundle Variant,用在不同版本资源的使用和动态替换AssetBundle。...注意:AssetBundle标记的名称要小写,可以有后缀,如a.unity3d b、当有很多AssetBundle标记的对象,想要看包含含有某个字符串的AssetBundle(可能有多个)中的资源时,可...,如果内容为空,则说明AssetBundle没有依赖AssetBundle。...(string) 获取给定AssetBundle的Hash GetDirectDependencies(string) 获取给定AssetBundle直接依赖的AssetBundles AssetBundle

    16910

    【Unity游戏开发】SpriteAtlas与AssetBundle最佳食用方案

    因此进行SpriteAtlas和AssetBundle的正确配合使用调研实在必行。...需要注意的,UGUI的图集,无论新旧,在构建AssetBundle的时候,同一个图集内的所有图元都要放在同一个AssetBundle中,否则,如果同一个图集的图元被分散到多个AssetBundle中,那么每一个...AssetBundle都会包含一份这个图集的Copy,最终的结果就是包体冗余、内存膨胀和加载耗时等问题。   ...这三个图集分别管理这Sprites目录下的每个子目录中的散图文件,这些散图文件时需要参与打包的(AssetBundle)。 ?   ...简单来说,就是运行时写的那些业务逻辑不需要关心我这个图元属于哪一张图集,属于哪一个AssetBundle,直接以散图的形式去使用、去获取就可以了。

    8.5K73
    领券