UFL5——资源加载模块
UFL5——资源加载模块
前置知识点
- C#中
Dictionary
相关知识点(C#四部曲之C#进阶中)- C#中委托事件相关知识点(C#四部曲之C#进阶中)
- C#中泛型相关知识点(C#四部曲之C#进阶中)
- Unity中特殊文件夹相关知识点(Unity四部曲之Unity基础中)
- Unity中协同程序相关知识点(Unity四部曲之Unity基础中)
- Unity中UnityWebRequest相关知识点(Unity网络开发基础中)
- Unity中AB包相关知识点(Unity热更新解决方案之Lua)
- Unity中AssetDatabase相关知识点(Unity编辑器拓展中)
资源加载模块
-
资源加载模块的主要作用
方便统一管理各种资源加载卸载方式(
Resources
、AB包、UnityWebRequest
、Editor
)
方便异步加载资源(Resources
、AB包、UnityWebRequest
) -
资源加载模块的基本原理
将各资源加载模式模块化 方便我们在加载资源时根据自己的需求进行选择性使用
抛出问题
我们目前有相当多的资源加载方案来加载不同文件夹下的资源,而不同类型的资源加载方案能加载的文件夹也不尽相同
问题:
- 实际开发中,可能会采用多种资源加载模式组合使用,逻辑分散时,不方便管理
- 异步加载时,往往会使用协同程序,异步加载资源会产生很多,协同程序相关的冗余代码
资源加载模块的主要作用
- 方便统一管理各种资源加载卸载方式(
Resources
、AB包、UnityWebRequest
、Editor
) - 方便异步加载资源(
Resources
、AB包、UnityWebRequest
)
资源加载模块的基本原理
将各资源加载模式模块化,比如Resources
资源管理器、AB包资源管理器等等
让他们分别管理不同加载方式加载的资源,最终再将他们整合在一起
方便我们在加载资源时根据自己的需求进行选择性使用
Resource资源加载模块
-
Resource资源加载模块
- Resource资源加载模块的具体实现
- 优化Resources资源加载模块的异步加载
- 添加引用计数的Resource资源加载模块
-
Editor资源加载模块
-
Assetbundle资源加载模块
- AB包资源管理器回顾及潜在问题考虑
- AB包资源管理器的异步加载修改
- AB包资源管理器的同步加载修改
-
UnityWebRequest资源加载模块
EditorResManager和ABManager整合
EditorResManager
的主要目的是方便资源管理,避免频繁的打AB包进行测试,
它主要是为AB包预备资源服务的,因此我们可以将它和ABManager
整合在一起
为了方便EditorResManager
的加载,我们规定所有会打包到AB包的文件都放置在:Assets/Editor/ArtRes/{AB包名}/
路径下
文件要打包到哪个AB包内就放到Assets/Editor/ArtRes/
的哪个文件夹下
在编辑器环境下,根据声明的变量isDebug
是否为true
,决定是使用AB包加载还是编辑器加载,非编辑器环境下,都使用AB包加载
1 | using UnityEngine; |
使用示例:
1 | public class Main : MonoBehaviour |
为什么不整合ResManager和UWQResManager
这两种资源加载管理器相对比较独立
一个专门用于加载Resources下的资源
一个专门用于加载指定位置的资源
当我们使用它们时那一定是确定了位置和加载方式后才会使用的,因此无需更多的整合处理