GameFramework:StarForce资源讲解
资源处理是游戏中很重要的一模块。
提示:资源创建,资源初始化,资源加载,资源卸载,为整个流程。
关于资源怎么创建出来的,如何打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资源讲解相关推荐
- GameFramework篇:StarForce资源热更新讲解(二:具体操作步骤)
上篇我们讲解了基本的实现流程,那么本篇我们来谈谈实际操作,从零开始一步步配置 先来捋一遍思路 首先,Full目录下的资源是Unity打出来的AssetBundle经过加密(如果选择了Load from ...
- GameFramework篇:StarForce资源热更新讲解(一:基本流程)
准备工作: StarForce dev/Update分支 https://github.com/EllanJiang/StarForce/tree/dev/Update 注意下载子库 ...
- GameFramework篇:StarForce资源加载细节讲解(一:资源加载辅助器)
前前后后看了一星期,才有了这篇博文,再次感叹,心急吃不了热豆腐. 在看这篇博文之前,建议先去了解一下Assetbundle和StreamingAsset和WWW和WebRequest这几个东西以及他们 ...
- GameFramework篇:StarForce资源加载细节讲解(二:ResourceComponent详解)
上篇博客已经将编辑器和非编辑器资源加载区分开了,那我们这篇就来具体看看非编辑器模式下资源加载 进入InitResources函数,此时的ResourceManager已经是我们非编辑器模式下的资源器了 ...
- GameFramework篇:StarForce流程讲解
环境:StarForce matser 3.1.7 之前我们就提到过流程贯穿游戏的始终,那么今天就来详细的说一下流程模块 ProcedureLauch为游戏入口流程,我们就来看他是什么,他做了什么 一 ...
- GameFramework:资源热更代码分析,检查版本信息,下载版本文件,校验版本文件,得到更新文件数量,下载文件,TaskPool
资源下载流程图 流程跳转的日志 版本信息-版本检测-下载版本列表-下载散文件代码分析 进入ProcedureCheckVersion.OnEnter流程,进行task请求,userData为StarF ...
- Unity3d+GameFramework:资源分析,资源依赖,循环依赖检测
资源依赖 先生成Resource 根据ResourceCollection.xml Resource resource = Resource.Create(name, variant, fileSys ...
- 吉林大学软件学院c++优秀课设资源讲解
1.介绍 课程设计目的: 1.熟悉利用面向对象的方法以及C++的编程思想来完成系统的设计: 2.锻炼学生在设计的过程中,建立清晰的类层次,应用继承和多态等面向对象的编程思想: 3.通过本课程设计,加深 ...
- android中的shape资源,Android Drawable资源讲解之shape篇
运用好Android的drawable资源,在开发中就可以减少图片的使用量,这样既缩小了app的体积,也省去了设计图片的时间,而且也容易适配不同的屏幕尺寸. 今天首先来讲讲shape资源的使用. 1. ...
最新文章
- package.json 依赖包版本号
- HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(三) 多表关联全文索引模式...
- STM32实现IAP功能之一
- C# SQLite编程总结
- 多行文本注视 php,多行文本进行截断的奇淫巧技
- Pytorch(七) --加载数据集
- 打开Excel文件时出现提示:“向Excel发送命令时出现错误”解决方案
- SVN服务的配置与管理
- 如何为你的CSDN博客加入百度统计
- FPGA(七) PWM波
- Qt调节电脑屏幕亮度
- 生成带微信头像的用户二维码
- err = Problems with launching via XPC. XPC error : Connection interrupted (0x00000005)
- 小白零基础学习Java编程好学吗?
- 【GANs】Generative Adversarial Nets
- 计算机与科学专硕考研院校排名,22考研|全国首次专硕院校评估排名,看看有你想报的没...
- 审查指南关于计算机可读介质,中美专利申请中对“计算机可读介质”的可专利性差异...
- STM32之usart
- zuk 科学计算机,前沿科技:科普ZUK Z1电量百分比设置教程及在设置中加入快速启动开关教程...
- 转业费计算器2019_军人转业费怎么计算器