UPL2-15——Asset Loading 模块
UPL2-15——Asset Loading 模块
Asset Loading 模块
Asset Loading(资源加载)模块是用来监视和分析 游戏运行时资源加载行为 的,它对性能调优、资源管理和加载策略优化具有重要意义
它主要是用于统计游戏在运行时加载资源所消耗的时间和调用信息
可以配合我们上节课学习的 File Access(资源访问)模块一起使用
Asset Loading 中各参数功能的含义和作用

-
资源加载(Asset Loading)监视视图

-
Other Reads(其他读取): 其他类型资源的读取操作,无法归类到下列类别时归入此项。例如某些
ScriptableObject、AssetBundle元数据等。 -
Texture Reads(纹理读取): 加载贴图(Textures)时的读取次数和数据量,比如
.png、.jpg、.dds等纹理资源。 -
Virtual Texture Reads(虚拟纹理读取): 虚拟纹理系统加载纹理数据时的读取量(Unity 的 Virtual Texturing 功能开启时有效)。
读取的数据通常是分片(Tiles)的纹理内容。
-
Mesh Reads(网格读取): 加载网格资源(Mesh)的操作,如
.fbx、.obj中的几何信息(顶点、索引、UV 等)。 -
Audio Reads(音频读取): 加载音频文件的读取情况,如
.mp3、.wav、.ogg等格式。 -
Scripting Reads(脚本读取): 脚本相关资源的读取,如
.dll文件、预编译脚本或 IL2CPP 输出的代码块等。 -
Entities Reads(实体读取): 加载 DOTS(Entity Component System)中的 Entities 资源,适用于基于 ECS 的项目结构。
我们可以利用这些数据:
- 判断加载瓶颈是否出现在某一类型的资源(如纹理、音频)
- 分析启动时或切场景时读取数据量是否异常
- 配合 File Access Profiler 查找文件 IO 延迟
- 优化
AssetBundle、Resources加载路径
-
-
资源加载详细信息

- Index: 资源加载条目的序号,按加载顺序排列。
- Source: 加载来源,可能是
Resources、AssetBundle、Addressables、StreamingAssets等。 - Asset Name: 资源的完整路径或名称,显示具体加载了哪个资源
- Thread: 加载该资源时运行的线程名称,例如主线程(Main Thread)或后台线程(Worker Thread)
- Type: 加载资源的类型,例如
Texture2D、Mesh、AudioClip、GameObject等。 - Size: 该资源的内存大小,单位通常为字节(B)、KB、MB。
- Marker Type: 用于标识该资源加载行为的类型(比如是否为异步加载、预加载等)
- Marker Length (ms): 加载该资源所耗费的时间(毫秒),可用于分析加载慢的问题。
- Frame Count: 资源加载跨越了多少帧(有时加载时间长可能会阻塞帧渲染)。
这里的信息可以帮助我们:
- 识别加载开销大的资源(Size 或 Marker Length 过高)
- 判断是否资源加载阻塞了主线程
- 分析是否某些资源频繁加载造成性能问题(比如重复加载)
- 对
Addressables /AssetBundle的加载行为进行优化分析
Asset Loading 对于我们的意义
该模块可以帮助我们
-
发现加载卡顿瓶颈
定位是哪个资源、何时加载导致了卡顿
-
优化资源分布
避免同一帧加载过多资源,建议分帧加载
-
验证异步加载
保证
Addressables或自定义异步加载生效 -
提高首帧性能
分析启动时资源是否加载过多,优化启动流程
-
避免重复加载
检查是否有重复使用
Resources.Load导致资源被多次加载
等等
总之,使用这两节课学习的 File Access(文件访问)和 Asset Loading(资源加载)两个模块
就可以定位资源加载相关问题了,可以给我们提供数据依据,针对性的进行优化
