
GameFramework框架
文章平均质量分 95
本专栏是Unity之GameFramework框架快速应用、使用说明、源码分析等文章合集,后续还会更新更多优质内容。原价99.9,限时前1500名半价订阅仅49.9🔥火爆订阅中!
恬静的小魔龙
优快云博客专家、Unity3D领域优质创作者,专注于VR、虚拟仿真开发。
《Unity 3D从入门到实战》作者。
展开
-
【GameFramework框架】四、GameFramework框架内置模块
【GameFramework框架内置模块】1、全局配置(Config)【GameFramework框架内置模块】2、数据节点(Data Node)【GameFramework框架内置模块】3、数据表(Data Table)【GameFramework框架内置模块】4、调试器(Debugger)【GameFramework框架内置模块】5、下载(Download)【GameFramework框架内置模块】6、实体(Entity)【GameFramework框架内置模块】7、事件(Event)原创 2024-02-05 14:12:11 · 3893 阅读 · 0 评论 -
【Unity3D框架】GameFramework框架完全教程《全网最全》-专栏文章目录
最近准备学习框架,了解到GameFramework框架是国产Unity3D框架,准备学习一下,但是奈何全网关于这个框架的教程实在太少。为了让自己学习方便一些,也为了让后来者乘凉。将框架以自己的理解整理目录,并且补全教程。觉得教程有帮助别忘了一键三连哦。原创 2024-02-05 11:18:07 · 14680 阅读 · 15 评论 -
【GameFramework框架】一、框架介绍
这是GameFramework框架教程的第一篇,但是博主不准备直接就讲GameFramework框架。【GameFramework框架】二、GameFramework框架介绍了。框架(Framework)通常被理解为一种基础要素的集合,它们用于承载系统的必要功能。约束性:框架定义了解决特定问题的边界,并将相关的软件组件约束在这个范围内,以保持框架的内聚性和解决问题的专注性。支撑性:框架本身不直接解决问题,而是提供一个基础的支撑结构,使得在其上构建的解决方案更为灵活和高效。原创 2024-01-31 23:49:01 · 6254 阅读 · 0 评论 -
【GameFramework框架】8-3、已经开发完成的虚拟仿真程序如何接入GameFramework框架
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。【GameFramework框架】系列教程目录:https://blog.youkuaiyun.com/q764424567/article/details/135831551已经开发完成的虚拟仿真程序如何接入框架。首先,需要明确的一点是,将框架导入开发完成的项目,必然会造成一些BUG或者错误,这些都是正常的。也会将原来的目录习惯破坏,这个也需要接受,因为用框架,就要按照框架的思路来。下图是框架的目录图:导入有两种方案:两原创 2024-11-17 13:33:14 · 575 阅读 · 0 评论 -
【GameFramework框架】7-1、GameFramework框架深入分析
在开始之前啰嗦一下。在最初写这个专栏的时候,就有规划这篇文章,叫做框架深入分析,就是想着将这个框架的所有内容刨根问底,追根溯源,分析到底是如何实现的。后来,写完了所有的GameFramework模块后发现,框架的内容真的博大精深,如果就着某点深入分析,分析完再进入下一个功能点,很容易就进入了牛角尖。站在花丛中,不识此山风景。跳出框架,掌握整体,见微知著,谋而定全局。框架是项目的骨架,它的力学结构决定了项目代码规模、人员规模以及系统和资源规模等方面的上限。原创 2024-09-06 11:02:29 · 717 阅读 · 0 评论 -
【GameFramework框架】7-2、GameFramework框架是否“过度设计”?
框架是否过度设计,这个问题其实我被问到很多次了。不仅仅是新手刚接触就觉得“过度设计”的评价,有些熟练的开发者也会有这种感觉。那么,这篇文章就来探究一下,为什么框架会让人感觉“过度设计”,以及框架如何设计,还有,如何让框架适应自己的节奏。原创 2024-07-12 17:16:08 · 1443 阅读 · 0 评论 -
【GameFramework扩展应用】6-5、GameFramework框架出包时增加版本信息Version.txt文件
框架在热更新的时候,会先去获取文件,然后获取版本号,对比版本号和资源大小,才会开始下载资源。但是,框架生成AssetBundle资源的包里面是没有这个文件的,只能我们新建一个文件,然后手动填入数据,非常麻烦。好消息是,框架把这些接口都留给我们了,我们只需要继承接口,重写函数,然后在打包的时候选择这个辅助器即可。下面就来看一下如何实现把。原创 2024-07-12 16:18:58 · 676 阅读 · 0 评论 -
【GameFramework扩展应用】6-4、GameFramework框架增加AB包加解密功能
做热更的时候加载的是资源,如果不对这些资源进行加密的话,很容易被人破解,那么应该如何做加解密呢。内置的:使用的加密算法为GameFramework.Utility.Encryption.GetQuickXorBytes();:使用的加密算法为GameFramework.Utility.Encryption.GetXorBytes();OK,那么要如何是实现我们自定义的加解密方法呢。因为加载方式会走LoadResourceAgentHelper的ParseBytes(byte[] bytes)原创 2024-07-12 16:05:52 · 1906 阅读 · 0 评论 -
【GameFramework扩展应用】6-3、GameFramework框架增加日志保存功能
GameFramework框架运行后,可以发现Game视图有个小按钮,点开就是框架提供的调试器窗口:Console选项卡可以在运行的时看不同的日志类型,来分析我们项目运行中出现的问题。当然,除了在控制台打印日志,我们使用框架更多的是想要将日志保存到文件的功能,这样才能方便查看。接下来就来看一下如何实现日志保存功能。原创 2024-07-12 15:08:27 · 464 阅读 · 0 评论 -
【GameFramework扩展应用】6-1、接入热更新框架HybridCLR
是一款基于Unity的通用游戏框架。提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。HybridCLR是一款特性完整、零成本、高性能、低内存的近乎完美的C#热更新方案。这篇文章就来介绍一下的示例项目StarForce是如何接入HybridCLR热更新框架的。*注意:这篇文章的重点是接入HybridCLR热更新框架,将不过多介绍HybridCLR热更新框架是如何实现热更新流程的,对于。原创 2024-07-09 14:55:40 · 916 阅读 · 1 评论 -
【GameFramework扩展应用】6-2、替换GameFramework.dll源码
因为框架生成出来的是,看不到源码。想要学习,看不到源码,代码跟踪很不方方便。这篇文章就来替换的源码,来解决这个问题。原创 2024-06-25 16:10:13 · 563 阅读 · 0 评论 -
【GameFramework框架工具链】5-3、DataTable数据表 扩展数据类型
使用DataTable数据表一般不需要我们去扩展数据类型,因为作者已经提供了几乎所有的基本数据格式的处理器Processor但是,需求是变化的,总是有需要扩展自定义类型的时候,比如,需要一个String数组类型。下面,就来实现以下扩展数据类型。原创 2024-04-02 15:53:02 · 699 阅读 · 0 评论 -
【GameFramework框架工具链】5-2、DataTable数据表 导表工具
是非常优秀的游戏框架,具有很强的扩展性和兼容性,不过作者未给我们提供完成的工具链使用,比如Excel配置表格式以及Excel导出到txt、bytes的编辑器工具。这些工具有什么用呢,比如说,我们想要修改数据表里面的数据,就需要打开txt文本手动进行修改,就像这样:不是很直观。但是,如果我们改成Excel格式,就很直观地方便修改了:接下来,我们就来看一下如何使用Excel配置表格式,以及如何导出为GF框架识别的txt文本。原创 2024-04-02 14:56:48 · 940 阅读 · 0 评论 -
【GameFramework框架工具链】5-1、DataTable数据表 类自动生成工具
这个是跟【GameFramework框架内置模块】3、数据表(Data Table)模块配合使用的工具链。在使用数据表的时候,我们需要先准备数据表,每个数据表对应一个C#,C#对应表里面的字段,然后使用里面的信息,比如Music数据表ID int类型 IDAssetName string类型 资源名然后,根据数据表生成C#实体类,这一块有一个StarForce的工具链,我们来看一下如何使用。原创 2024-04-02 12:00:28 · 765 阅读 · 0 评论 -
【GameFramework框架内置模块】18、界面(UI)
界面(UI)提供管理UI界面和界面组的功能,比如显示界面、激活界面、改变界面层级等。界面(UI)为Unity的GUI系统提供了灵活和强大的功能,帮助开发者快速构建游戏UI。还可以与现有的Unity 的UI插件(如NGUI、FGUI)及GUI系统(UGUI)无缝集成,只要派生自类并实现自己的界面类即可使用。界面使用结束后可以不立即销毁,等待下一次使用。原创 2024-03-26 17:57:05 · 2209 阅读 · 3 评论 -
【GameFramework框架内置模块】19、Web请求(Web Request)
Web请求(Web Request)提供使用短连接的功能,可以使用Get或者Post方法向服务器发送请求并响应数据,可以指定几个Web请求器进行同时请求。原创 2024-03-26 17:26:40 · 1415 阅读 · 2 评论 -
【GameFramework框架内置模块】17、声音(Sound)
声音(Sound)模块是管理音频的模块,比如播放、停止、修改音量等,支持淡入淡出、AudioMixer等高级设置。声音(Sound)的配置面板如下所示:所有的声音统一按照组来分,可以根据需要添加或者溢出组,声音组可以配置Agent的数量和音量等。原创 2024-03-26 15:50:40 · 1312 阅读 · 0 评论 -
【GameFramework框架内置模块】16、配置(Setting)
配置(Setting)模块,我觉得可以跟全局配置(Config)模块对比着来讲。都是配置,它们有什么区别呢,为啥要分开呢。模块功能读取方式设置机制全局配置(Config)存储游戏中使用的全局的参数配置,比如玩家的初始速度、初始蓝量、初始防御力等等。使用配置文件读取策划设计修改参数配置(Setting)管理游戏中的一些配置设置,比如游戏声音的音量、音乐的音量、UI声音的音量等等。类似PlayerPrefs读取玩家自己配置是不是有点清晰了。。。全局配置(Config)原创 2024-03-26 14:39:37 · 1240 阅读 · 1 评论 -
【GameFramework框架内置模块】15、场景(Scene)
场景(Scene)模块,提供场景管理的功能,负责场景的加载、卸载、切换和管理。可以方便地管理不同场景之间的切换以及不同场景之间的信息传递。原创 2024-03-26 11:29:08 · 1304 阅读 · 0 评论 -
【GameFramework框架内置模块】14、资源(Resource)
这篇文章学习资源(Resource)模块。在开始之前先啰嗦一下,Resource模块指的是Resource资源,而不是。每个模块干啥的我差不多了解了,但是为啥要分成这么多的模块。我想要加载的话,我可以用直接加载吗。下载(Download)、资源(Resource)、Web请求(Web Request)有啥区别呢。下载(Download)底层实现是封装的一个下载器,为啥不叫Web模块,而Web模块又是干啥的。这些我都会在所有模块写完后在。原创 2024-03-26 10:42:28 · 1637 阅读 · 0 评论 -
【GameFramework框架内置模块】13、流程(Procedure)
流程(Procedure)可以帮助我们管理游戏中的各个阶段。在StarForceProcedure基于FSM状态机的思想,将每个流程看成一个状态,通过切换状态来执行不同的流程。在每个流程中,设置回调函数,可以对流程进行控制和管理,比如下载的操作,等待下载完毕再切换状态。原创 2024-03-21 10:00:13 · 1526 阅读 · 0 评论 -
【GameFramework框架内置模块】12、对象池(Object Pool)
对象池(Object Pool)技术,相比大家都了解很多了,使用对象池技术的原因在于对象需要存在频繁的创建和销毁。为了避免GC,而对对象的创建和销毁进行优化,需要时获取,不需要时回收,而不是销毁。在GameFramework框架中,用到对象池(Object Pool)1、TaskPool 任务池2、RefrencePool 引用池3、 EventPool 事件池4、ObjectPool 对象池。原创 2024-03-20 17:49:39 · 1937 阅读 · 0 评论 -
【GameFramework框架内置模块】11、网络(Network)
网络(Network)模块,主要是提供了使用Socket长连接的功能,支持TCP协议,同时兼容Ipv4和IPv6两个版本。用户可以同时建立多个连接与多个服务器进行通信,比如连接了常规的服务器以外,还想连接语音聊天服务器。如果想要接入ProtoBuf之类的协议库,只要派生自Packet类并实现自己的消息包类即可使用。原创 2024-03-20 14:34:07 · 1815 阅读 · 0 评论 -
【GameFramework框架内置模块】10、本地化(Localization)
本地化(Localization),也就是我们所说的不同地区的语言适配,比如说中文版“你好”,英文版是“Hello”。GameFramework在本地化方面,不仅支持文本的本地化,还支持任意资源的本地化,比如说游戏中释放烟花的特效也可以做出不同地区的版本,使得中文版烟花里面的“新年好”字样的特效,在英文版里面是“Happy New Year”字样的特效。原创 2024-03-20 10:03:41 · 1815 阅读 · 0 评论 -
【GameFramework框架内置模块】9、有限状态机(FSM)
这篇文章分享FSM有限状态机,了解过StarForce源码的同学相比都比较了解,GameFramework框架给我们抽象了一个Procedure流程的概念。这个Procedure流程可以方便的处理我们游戏从启动到游戏的各个流程阶段的处理逻辑,实现的核心就是FSM状态机,内部的Procedure流程就是不同的FsmState状态。接下来,就是FSM有限状态机的教程了。有限状态机(Finite-state machine,FSM)原创 2024-03-20 09:14:37 · 1906 阅读 · 0 评论 -
【GameFramework框架内置模块】8、文件系统(File System)
最近好忙,鸽了好久。不能颓废了,继续发力。今天分享的是GF框架的文件系统。首先,引用比较官方的说法:GF的FileSystem虚拟文件系统,使用类似磁盘存储的感念对零散的文件进行集中管理,优化资源加载时产生的内存分配,也可以对资源进行局部片段加载,极大的提升了资源加载的性能。通俗点讲就是,我这个模块就是加载磁盘文件的,优化加载时产生的内存分配。那么,它是怎么优化的呢?原创 2024-03-18 22:21:21 · 1811 阅读 · 0 评论 -
【GameFramework框架内置模块】7、事件(Event)
事件(Event)是一个实现游戏逻辑监听、抛出事件的机制。的很多模块都会在完成操作后抛出内置事件,这些监听事件可以大大改善游戏逻辑之间的耦合。除了内置事件外,使用者也可以自定义自己的游戏监听事件,只需要继承于类即可,事情框架都帮我们做好了。事件对象使用了引用池技术,避免使用事件过程中频繁的内存分配。的事件系统,使用了观察者设计模式,允许游戏对象之间的松耦合通信和交互。采用了面向对象的注册方法,让代码结构性更强,耦合性降低。下面就来看一下事件系统如何使用吧。原创 2024-02-28 21:10:58 · 2169 阅读 · 1 评论 -
【GameFramework框架内置模块】6、实体(Entity)
实体Entity就是一个实体的基本单元,类似于Unity的GameObject对象本体,然后这个本体上面附加其他各种各样组件,才能实现各种各样的功能。一般需要在游戏运行时动态加载的游戏对象,比如怪物、武器、子弹、特效,都需要给这个物体挂载一个实体Entity,这样的话就可以方便的对实例出来的对象进行管理。下面就来看一下如何使用吧。原创 2024-02-28 20:47:43 · 2264 阅读 · 0 评论 -
【GameFramework框架内置模块】5、下载(Download)
下载(Download)是GF框架封装的一个下载器。可以用来下载图片、视频、json文件等,支持断点续传,功能强大。原创 2024-02-27 21:20:24 · 1670 阅读 · 0 评论 -
【GameFramework框架内置模块】4、内置模块之调试器(Debugger)
日志模块,大家都很熟悉了,为啥GameFramework框架又做了这么一个模块呢。大家在使用Debug.Log在开发环境需要打印日志,在正式环境需要关闭日志,Unity没有全局开关日志的方法没有日志文件保存到指定路径的功能发布产品,关闭所有日志或者仅开启错误及以上级别日志,开发调试的时候自定义开启日志级别。将日志保存到文件的功能下面就来看一下如何使用。原创 2024-02-26 21:51:14 · 1685 阅读 · 0 评论 -
【GameFramework框架内置模块】3、数据表(Data Table)
DataTable数据表是一个表的数据集合,可以理解为DataRow的字典集合比如。DataTable数据表是数据集合的访问查询类,主要操作有数据的增删改查方法(虽然框架提供了删除的接口,但是一般是不需要进行修改或者删除的,读取就好了)。框架推荐我们使用DataTable数据表来设置初始数据,比如玩家初始生命值、初始蓝量、初始防御力等,下面就来看一下如何使用吧。原创 2024-02-25 22:14:19 · 2342 阅读 · 0 评论 -
【GameFramework框架内置模块】2、数据节点(Data Node)
这一篇讲数据节点DataNode,基本开发程序都会有类似数据节点作用的东西,数据节点的作用其实就是保存游戏运行时的一些缓存数据,比如用户登录信息、用户名、任务节点等等。数据一般会有增删改查这四种操作,在运行时的数据一般是使用单例或者静态属性,将数据存储在内存中而数据节点也是将数据存储在内存中,但是不用序列化数据,比使用单例或者静态属性要容易维护的多,特别时它的树形结构可以让我们很好的组织我们的数据结构,方便做增删改查操作。数据节点DataNode模块的数据的存储方式是以树形结构存储。原创 2024-02-20 21:31:53 · 2327 阅读 · 0 评论 -
【GameFramework框架内置模块】1、全局配置(Config)
这是GameFramework框架内置模块的第一篇,全局配置Config,讲解这些模块的时候会尽量的涉及介绍、为什么使用、如何使用、代码分析这几块,让大家可以知其然,也知其所以然。全局配置表,存储了一些游戏中使用的全局的参数配置,比如玩家的初始速度、游戏初始音量等。全局配置表的结构跟DataTable结构类似,也是列行+键值对,只是没有ID这一列,因为全局配置也不需要用ID去查询, 是直接使用key值进行查询。原创 2024-02-12 21:28:30 · 4093 阅读 · 3 评论 -
【GameFramework框架】三、快速启动
这篇文章就带领大家如何快速启动GameFramework框架。原创 2024-02-05 10:42:29 · 2737 阅读 · 7 评论 -
【GameFramework框架】二、GameFramework框架介绍
Game Framework框架是由E大(Ellan Jiang)开源的一款基于Unity的通用游戏框架。Game Framework框架提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。实在是代码开发、框架学习、编程进阶、居家旅行哦不对,是提升自己的最佳实践。Game Framework框架。原创 2024-02-04 10:31:24 · 3691 阅读 · 0 评论