资源处理是游戏中很重要的一模块。

提示:资源创建,资源初始化,资源加载,资源卸载,为整个流程。
关于资源怎么创建出来的,如何打ab资源,看这篇内容:GameFramework:AssetBunle 工具、配置、打包设置


文章目录

  • 1、资源管理器
  • 2、资源初始化
  • 3、资源加载
  • 4、资源卸载

一、资源管理器

Editor Resource Mode

一看这个描述,还是不太清楚,到底是啥意思。

我们就查找所有引用,看看这个属性用到了那些地方,有啥作用。

1、如果勾选,就用EditorResourceHelper编辑器资源组件,反之ResourceManager资源管理器。

2、数据表组件,场景组件,声音组件等等,关于组件模块需要用到资源管理器的,都会设置资源管理器,对应使用。

3、根据Editor Resource Mode 是否走,编译器模式流程。

GameEntry.Resource.ResourceMode 根据走单机,还是热更流程。

4、Editor Resource Mode  勾选启用自己并且编辑器资源组件赋值,反之不启用。

EditorResourceComponent

编辑器资源组件,专门给在编译器下处理资源加载的,后面会单独介绍。

这个脚本并没有继承GameFrameworkModule类,猜想可能是EditorResourceMode勾选启用,更加方便吧。

二、资源初始化

编辑器模式下,并没有初始化资源这个流程。

1、在单机模式,会进入ProcedureInitResources,资源初始化就是从这个流程开始的。

GameEntry.Resource.InitResources(OnInitResourcesComplete);

接着往下看,咱们会看到这里,主要看ResourceManager,因为咱们走的并不是编辑器模式。

大家看到这个初始化。

m_ResourceManager.m_ResourceHelper.LoadBytes

下面这个回调,才是重中之重。

OnLoadPackageVersionListSuccess

从StreamAssets读取GameFrameworkVersion.dat。

从GameFrameworkVersion.dat读取二进制文件流,利用回调函数解析资源信息,把资源分组加载到资源组里面。

下面我框起来的,这个大家注意看一下,后面加载资源就是从m_ResourceManager.m_AssetInfos  这里面拿出资源使用的,后面资源加载再详细的介绍。

2、热更的资源初始化。

ResourceManager.ResourceChecker 这个脚本里面。

三、资源加载

加载资源这个操作,大家应该看到很多。

我们来看看怎么处理的,从ResourceManager.ResourceLoader脚本看看。

从CheckAsset函数里面定位到GetAssetInfo 

m_AssetInfos 这个大家看到过的,资源初始化这个字典就获取到了资源信息的数据。

四、资源卸载

走的资源池,释放的流程。可以看到各个模块的辅助器,都有调用,卸载资源的引用。

我们来看个释放界面的例子。

m_ResourceComponent.UnloadAsset 卸载资源

Destroy 删除对象

先给对象回收,如果有释放就走释放的流程。

释放之前会有,释放对象池中的可释放对象,流程筛选。

会从对象池释放对象。

总结

资源的初始化,资源加载,资源卸载,整个流程大家应该有了初步的了解,想要了解的更深入,还需要仔细的研究。

GameFramework:StarForce资源讲解相关推荐

  1. GameFramework篇:StarForce资源热更新讲解(二:具体操作步骤)

    上篇我们讲解了基本的实现流程,那么本篇我们来谈谈实际操作,从零开始一步步配置 先来捋一遍思路 首先,Full目录下的资源是Unity打出来的AssetBundle经过加密(如果选择了Load from ...

  2. GameFramework篇:StarForce资源热更新讲解(一:基本流程)

    准备工作: StarForce dev/Update分支 https://github.com/EllanJiang/StarForce/tree/dev/Update 注意下载子库         ...

  3. GameFramework篇:StarForce资源加载细节讲解(一:资源加载辅助器)

    前前后后看了一星期,才有了这篇博文,再次感叹,心急吃不了热豆腐. 在看这篇博文之前,建议先去了解一下Assetbundle和StreamingAsset和WWW和WebRequest这几个东西以及他们 ...

  4. GameFramework篇:StarForce资源加载细节讲解(二:ResourceComponent详解)

    上篇博客已经将编辑器和非编辑器资源加载区分开了,那我们这篇就来具体看看非编辑器模式下资源加载 进入InitResources函数,此时的ResourceManager已经是我们非编辑器模式下的资源器了 ...

  5. GameFramework篇:StarForce流程讲解

    环境:StarForce matser 3.1.7 之前我们就提到过流程贯穿游戏的始终,那么今天就来详细的说一下流程模块 ProcedureLauch为游戏入口流程,我们就来看他是什么,他做了什么 一 ...

  6. GameFramework:资源热更代码分析,检查版本信息,下载版本文件,校验版本文件,得到更新文件数量,下载文件,TaskPool

    资源下载流程图 流程跳转的日志 版本信息-版本检测-下载版本列表-下载散文件代码分析 进入ProcedureCheckVersion.OnEnter流程,进行task请求,userData为StarF ...

  7. Unity3d+GameFramework:资源分析,资源依赖,循环依赖检测

    资源依赖 先生成Resource 根据ResourceCollection.xml Resource resource = Resource.Create(name, variant, fileSys ...

  8. 吉林大学软件学院c++优秀课设资源讲解

    1.介绍 课程设计目的: 1.熟悉利用面向对象的方法以及C++的编程思想来完成系统的设计: 2.锻炼学生在设计的过程中,建立清晰的类层次,应用继承和多态等面向对象的编程思想: 3.通过本课程设计,加深 ...

  9. android中的shape资源,Android Drawable资源讲解之shape篇

    运用好Android的drawable资源,在开发中就可以减少图片的使用量,这样既缩小了app的体积,也省去了设计图片的时间,而且也容易适配不同的屏幕尺寸. 今天首先来讲讲shape资源的使用. 1. ...

最新文章

  1. package.json 依赖包版本号
  2. HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(三) 多表关联全文索引模式...
  3. STM32实现IAP功能之一
  4. C# SQLite编程总结
  5. 多行文本注视 php,多行文本进行截断的奇淫巧技
  6. Pytorch(七) --加载数据集
  7. 打开Excel文件时出现提示:“向Excel发送命令时出现错误”解决方案
  8. SVN服务的配置与管理
  9. 如何为你的CSDN博客加入百度统计
  10. FPGA(七) PWM波
  11. Qt调节电脑屏幕亮度
  12. 生成带微信头像的用户二维码
  13. err = Problems with launching via XPC. XPC error : Connection interrupted (0x00000005)
  14. 小白零基础学习Java编程好学吗?
  15. 【GANs】Generative Adversarial Nets
  16. 计算机与科学专硕考研院校排名,22考研|全国首次专硕院校评估排名,看看有你想报的没...
  17. 审查指南关于计算机可读介质,中美专利申请中对“计算机可读介质”的可专利性差异...
  18. STM32之usart
  19. zuk 科学计算机,前沿科技:科普ZUK Z1电量百分比设置教程及在设置中加入快速启动开关教程...
  20. 转业费计算器2019_军人转业费怎么计算器

热门文章

  1. 火星坐标系转百度php,PHP版本实现火星,高德地图和百度地图坐标转换
  2. GBase 8s Java UDR安装说明
  3. 嵌入式行业真的没有前途吗?
  4. 红米NOTE8PRO拍照技巧
  5. 扫描枪中文输入法导致乱码问题
  6. ACL/NAACL‘22 推荐系统论文梳理
  7. crontab: error renaming解决方法
  8. 『牛角书』基于JS实现的鸿蒙游戏——二十四点纸牌
  9. 客制化踩坑记——我的第一把40%序列键盘
  10. oppo R9sk 完美root 线刷包+救砖