赞
踩
【Unity3D_常用模块】资源管理器(AssetManager.cs)
第一个:异步预加载单个资源:PreLoadAssetAsync(...)第二个:同步预加载单个资源:PreLoadAsset(...)其他的几个调用相关的函数,基本为了提高使用方便,进行一些简单的封装。
只要有耐心的慢慢看,一定能够看懂。注释也写的非常的详细。
只要有耐心的慢慢看,一定能够看懂。注释也写的非常的详细。
--------------------------------------------------------------------------------华丽的分割线--------------------------------------------------------------------------------
简单说明:
1.主要目的是让逻辑开发过程中摒弃AssetBundle的概念。在逻辑开发过程中,只需要对资源路径进行管理即可。1) 接口基类:LoadOperation_Base
2) 异步AssetBundle加载基础运算结构:LoadAssetBundle_Operation_Base
3) 异步Asset加载基础运算结构:LoadAsset_Operation_Base
4) 异步AssetBundle加载运算:Load_AssetBundle_OperationAsync
5) 同步AssetBundle加载运算:Load_AssetBundle_Operation
6) 同步Scene加载运算,编辑器环境:LoadLevel_Operation_InEditor
7) 异步Scene 加载运算,编辑器环境:LoadLevel_Operation_InEditorAsync
8) 同步LevelScene加载数据结构:LoadLevel_Operation
9) 异步LevelScene加载数据结构:LoadLevel_OperationAsync
10) 异步Asset加载数据结构,编辑器环境:LoadAsset_Operation_InEditor
11) 异步Asset加载数据结构:LoadAsset_OperationAsync
12) 同步Asset加载数据结构:LoadAsset_Operation
13) 已加载完成的AssetBundle,引用基数等基本包装:LoadedAssetBundle
14) 已加载完成的Asset,引用基数等基本包装:LoadedAsset
15) 委托,根据AssetBundleName获取已加载完成的AssetBundle:Delegate_GetLoadedAssetBundle
1) 私有变量:
1.1) 资源路径重写(特殊资源路径的筛选,替换):overrideAssetBundlePathHandle1.2) 已经加载完成的AssetBundle对象缓存:m_LoadedAssetBundles1.3) 已经加载完成的Asset对象缓存:m_LoadedAssets1.4) 资源加载错误信息缓存(Key:AssetBundleName, Value:ErrorContent):m_LoadingErrors1.5) 记录当前正在加载的AssetBundleName缓存:m_LoadingBundles1.6) 正在加载中的AssetBundle结构对象缓存:m_LoadingOperations1.7) 资源引用缓存(Key:AssetBundleName, Value:Dependencies):m_Dependencies
2) 私有方法:
2.1) 根据AssetBundleName,配合第三方委托函数,确定,加载目录,路径:GetAssetBundlePath(...)2.2) AssetBundle 加载完成逻辑:ProcessFinishedOperation(...)2.3) 资源包加载基础接口:LoadAssetBundle(...)2.4) 通过AssetBundleName,构建资源加载数据结构,并添加至缓存中,遍历扫描,进行加载:LoadAssetBundleInternal(...)2.5) 搜集AssetBundle的相关引用,并进行加载:LoadDependencies(...)2.6) 卸载该AssetBundle的相关引用资源:UnloadDependencies(...)2.7) 卸载主资源:UnloadAssetBundleInternal(...)2.8) 完整卸载AssetBundle(主资源,依赖资源):UnloadAssetBundle(...)2.9) 同步加载资源对象基础方法:LoadAssetBase<T>(...)2.10) 异步加载资源对象基础方法:LoadAssetBaseAsync<T>(...)2.11) 同步加载场景对象基础方法:LoadLevelBase(...)2.12) 异步加载场景对象基础方法:LoadLevelBaseAsync(...)2.13) 根据AssetBundleName,获取已经加载完成的AssetBundle:GetLoadedAssetBundle(...)2.14) 添加对象至资源缓存目录,路径:AddAssetObjectToCache(...)2.15) 获取资源对象名字,根据资源路径:GetAssetNameByAssetPath(...)2.16) 获取资源对象在缓存中对应的Key值,根据资源路径:GetAssetKeyByAssetPath(...)2.17) 获取AssetBundleName,根据资源路径:GetAssetBundleNameByAssetPath(...)
3) 公开方法:
3.1) 初始化:InitManager(...)3.2) 资源每帧检测资源加载状态:Update(...)3.3) 获取资源相关方法:
3.3.1) 从缓存中获取单个资源对象,如果不存在返回Null值:GetAssetObjectFromCache<T>(...)3.3.2) 从缓存中获取多个资源对象,如果不存在返回Null值:GetAssetObjectFromCache<T>(...)3.3.3) 同步安全获取单个缓存资源(不存在,则加载):SafeGetAssetObjectFromCache<T>(...)3.3.4) 同步安全获取多个缓存资源(不存在,则加载):SafeGetAssetObjectsFromCache<T>(...)3.3.5) 异步安全获取单个缓存资源(不存在,则加载):SafeGetAssetObjectFromCacheAsync<T>(...)3.3.6) 异步安全获取多个缓存资源(不存在,则加载):SafeGetAssetObjectsFromCacheAsync<T>(...)
3.4) 预加载资源相关方法
3.4.1) 异步预加载单个资源:PreLoadAssetAsync(...)3.4.2) 异步预加载多个资源:PreLoadAssetsAsync(...)3.4.3) 同步预加载单个资源:PreLoadAsset(...)3.4.4) 同步预加载多个资源:PreLoadAssets(...)
3.5) 场景加载相关方法
3.5.1) 同步加载场景:LoadScene(...)3.5.2) 异步加载场景:LoadSceneAsync(...)
3.6) 卸载相关方法
3.6.1) 卸载单个资源:UnLoadAsset(...)3.6.2) 卸载多个资源:UnLoadAssets(...)3.6.3) 卸载单个场景:UnLoadScene(...)3.6.4) 卸载多个场景:UnLoadScenes(...)
3.7) 调试
3.7.1) 打印AssetBundle缓存列表:ShowAssetBundleCache()3.7.2) 打印资源缓存列表:ShowAssetCache()
1) 路径重写委托:OverrideAssetBundlePathHandle(...)
2) 游戏启动:StartUp(...)
3) 测试加载:Test_Load(...)
1) 游戏启动:Start(...)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。