![](https://img-blog.csdnimg.cn/20190205213338878.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
GameFramework学习笔记
回报社区
烟雨迷离半世殇
战略转移到个人博客:lfzxb.top
展开
-
GameFramework篇:Network模块案例解读(一:准备工作)
前言过了那么久,我又回来了,因为我开始研习服务端了(欠的技术债总要还的),因为GF已经越来越熟练,并且使用过程中也十分稳定,所以我已经决定了,使用GF做客户端,至于服务端,因为对于中大型项目,服务端框架也必不可少,我选择了ET(另一个很强大的框架,是双端的链接:https://github.com/egametang/ET)。项目工程下载既然要学习,那就要一个案例,身为服务端小白,我是...原创 2019-03-09 15:05:24 · 3828 阅读 · 4 评论 -
GameFramework篇:Network模块案例解读(二:GF Network模块理解)
在正式开始讲之前,我们需要明确GF的Network模块的运行机制,感觉说起来太抽象了,上UML吧应该。。。不难理解吧在这个案例中,为了迎合ET的服务端,协议为,前2个字节代表消息的长度, 第3个字节代表消息flag,1表示rpc消息,0表示普通消息 第4和第5个字节表示消息的Id项目结构图(我做了修改。。。方便讲解)来到程序入口ProcedureNetSample说...原创 2019-03-09 15:05:37 · 2272 阅读 · 1 评论 -
Unity实战篇:Buff系统设计(二:具体代码和实战使用)
首先是Buff种类 public enum BuffKind { FreezeBuff = 1, GodDefendBuff = 2, SteelHeartBuff = 3, }BuffBasepublic abstract class BuffBase { /// <summary...原创 2019-02-21 10:43:44 · 7219 阅读 · 3 评论 -
Unity实战篇:Buff系统设计(一:大体思路和思维导图)
在网上看了不少Buff系统的设计,总是不如我的意,所以索性自己思考着做了一个,欢迎大家提意见。思想:能够被加上Buff的游戏物体,说明他在游戏中的地位已经相当重要,所以我们值得让他继承Mono 相对于集中管理的BuffManager,我倾向于每个游戏物体都是自己Buff的管理者,当自己被加上Buff的时候,自己要做出相应的反应 Buff有两个最基本的共同点 1.持续时间 2.Bu...原创 2019-02-21 10:43:36 · 9370 阅读 · 1 评论 -
GameFramework篇:类自动生成工具的使用
本来我是想写一下类生成工具的详解教程。。。后来发现能力不够,只好作罢,暂时先写一下使用教程准备工作:StarForce最新版:https://github.com/EllanJiang/StarForce.gitUnity 2018.3GitKraken 因为很多人不会下载SubModules库,所以这里直接用小章鱼来做教程了在左侧边栏有SubModules,右键会有Ini...原创 2019-02-08 13:43:26 · 3247 阅读 · 4 评论 -
GameFramework框架个人笔记汇总
本博客永久停更,更新全在我个人网站,https://www.lfzxb.top欢迎大家加入我的Unity交流群:959572557本篇博客将记录所有的关于GameFramework的笔记和教程。视频教程地址:https://www.bilibili.com/medialist/detail/ml759678145?type=1StarForce全解读 框架基本理解以及源码下载 ...原创 2019-02-05 21:18:05 · 9767 阅读 · 0 评论 -
Unity作品展示:坦克大战(基于GameFramework)
游戏名称:Battle City游戏素材:SIKI学院,爱给网开发平台:Unity 2018.3.1f1游戏平台:WinX游戏版本:1.0游戏用途:仅供学习交流使用,若用作商业,后果自负。游戏类型:经典坦克大战,微创新游戏介绍:加入商城模块,任务模块,存读档功能,技能背包系统,Buff系统源码下载:https://blog.csdn.net/qq_1502054...原创 2019-02-03 19:41:57 · 5718 阅读 · 0 评论 -
GameFramework篇:自定义事件订阅
首先我们要先知道什么是事件https://blog.csdn.net/qq_15020543/article/details/82834355然后我们要知道使用事件的重要性和必要性,正如木头大佬所说在GF里面创建和使用自定义事件还是比较容易的这里举个例子我们进行场景切换,要加载完下一场景所有资源才能切换吧,不然黑屏是什么鬼这里我是切换场景后,开始生成多个实体,所有实体生...原创 2019-01-28 12:07:56 · 2181 阅读 · 0 评论 -
GameFramework篇:存档功能简单使用
GF自带了Setting模块,以键值对的形式存储玩家数据,对 UnityEngine.PlayerPrefs 进行封装。主要的API在DefaultSettingHelper里面其中Load功能是个空方法,并没有写,需要大家自己去写,一想也是,每个项目数据结构都不一样下面是个简单的例子然后大家根据自己项目需要再对此模块进行封装即可...原创 2019-01-20 21:03:42 · 2073 阅读 · 0 评论 -
GameFramework篇:StarForce显示实体(Entity)
本篇博客来说一下StarForce里面的实体,StarForce里面实体的数据和逻辑是分离的,通过组件的形式组装到实体身上。我们来看SurvivalGame类,这个是游戏逻辑类就做了一件事,每隔一秒生成一个实体,细化起来就是,拿到陨石表,然后调用ShowAsteroid函数来实例化陨石那我们就来看ShowAsteroid函数他是EntityComponent的拓展方法 ...原创 2019-01-14 18:32:45 · 2766 阅读 · 0 评论 -
GameFramework篇:StarForce数据表创建与读取
GF游戏中静态数据都通过数据表来读取,比如玩家初始生命值,初始蓝量,初始防御力等。。。在StarForce就是这里每一个数据表都要对应一个C#类,这个C#要对应上里面的字段,只有这样才能正确使用里面的信息,这里以Music数据表为例可能有点不太直观,在Excel里重现就是C#类GF对数据表读取是分成一行一行的,所以上面的C#类里,index++是指同一行数据列数...原创 2019-01-12 17:23:23 · 3204 阅读 · 1 评论 -
GameFramework篇:新项目搭建GF框架需知
1.AB包相关配置GF资源管理实属牛批,但要使用它,并不是全自动的,还是要配置一下创建一个静态类,类名随意,注意里面至少要包含以下三个属性,后面的地址所指就是打AB包所必须的三个配置文件(这个地址可以自己更改,注意改变路径就行) [AssetBundleBuilderConfigPath] public static string AssetBundleBuilderC...原创 2019-01-11 19:57:17 · 6632 阅读 · 2 评论 -
GameFramework篇:StarForce加载UI讲解(下)
我们从这里开始看,可以看到这里已经给事件参数赋好值了追踪OpenUIFormSuccessEventArgs回到上篇博文的结尾,发现最终还是用到了我们刚开始时依据哈希值订阅的事件OpenUIFormSuccessEvent,二GameFramework.UI.OpenUIFormSuccessEventArgs是我们这篇文章开头说的打开界面成功事件,大家注意区分,然后我们发现这...原创 2019-01-05 17:54:21 · 2027 阅读 · 5 评论 -
GameFramework篇:StarForce加载UI讲解(上)
准备工作:了解C#委托和事件这篇博客就以初学者角度来讲讲GF加载UI的方式,因为卸载UI的方式相对简单,就留给大家自己看了。来到ProcedureMenu流程,因为这里有UI OnEnter函数做了两件事,订阅打开UI成功事件,并设置回调函数,意思是当UI实例化成功时,调用OnOpenUIFormSuccess函数 。好了,这时候我们先不管别的,先把这句的原理搞...原创 2019-01-05 17:54:19 · 3664 阅读 · 2 评论 -
GameFramework篇:StarForce资源加载细节讲解(三:获取使用资源与总结)
前两篇已经说完了资源的加载,这次我们来说说资源的使用。经过我的观察,我发现,不论是打开UI生成游戏物体加载配置文件都离不开这个我们在这个LoadAsset函数里看到了几个熟悉的身影没错了,这就是从我们初始化好的资源组拿取资源了GF资源部分总结:经过这几篇博客的胡扯,我们可以比较清晰的感受到资源从创建,到加载,再到使用这几个流程,先是初始化资源...原创 2019-01-03 14:37:12 · 2913 阅读 · 0 评论 -
GameFramework篇:StarForce资源加载细节讲解(二:ResourceComponent详解)
上篇博客已经将编辑器和非编辑器资源加载区分开了,那我们这篇就来具体看看非编辑器模式下资源加载进入InitResources函数,此时的ResourceManager已经是我们非编辑器模式下的资源器了,所以这篇博客中的m_ResourceManager不再过多赘述这 里的m_ReadOnlyPath就是也就是我们AB包所在位置,他读取的是StreamAssets文件夹下的versio...原创 2019-01-03 14:37:06 · 3091 阅读 · 0 评论 -
GameFramework篇:StarForce资源加载细节讲解(一:资源加载辅助器)
前前后后看了一星期,才有了这篇博文,再次感叹,心急吃不了热豆腐。在看这篇博文之前,建议先去了解一下Assetbundle和StreamingAsset和WWW和WebRequest这几个东西以及他们的用法。这是必须的,不然你会不知道我在说些什么。。。之前博文已经介绍了一些基本的模块,流程,热更新,AB包,在执行这些功能的时候,总是不可避免的谈到资源的加载,于是我就在这里讲一下先来到Pr...原创 2019-01-03 14:36:59 · 4893 阅读 · 0 评论 -
GameFramework篇:Debugger相关
本文只介绍基本的操作方法,具体细节请大家自行实践 注意点:如果Disable All Logs将不会显示Debugger Debugger不会在非编辑器模式下出现,打包后将不会有此功能 如果需要在非编辑器下面进行Debug,推荐插件https://forum.unity.com/threads/in-game-debug-console-open-source.411323/#post...原创 2018-12-30 12:24:42 · 1636 阅读 · 0 评论 -
GameFramework篇:StarForce资源热更新讲解(二:具体操作步骤)
上篇我们讲解了基本的实现流程,那么本篇我们来谈谈实际操作,从零开始一步步配置先来捋一遍思路首先,Full目录下的资源是Unity打出来的AssetBundle经过加密(如果选择了Load from memory and Decrypt或quick Decrypt)和Zip压缩(如果选择了Zip压缩)后,加上资源的hashcode在加上了一个dat后缀生成的。其中version.dat中记录...原创 2018-12-30 11:11:27 · 3586 阅读 · 4 评论 -
GameFramework篇:StarForce资源热更新讲解(一:基本流程)
准备工作: StarForce dev/Update分支 https://github.com/EllanJiang/StarForce/tree/dev/Update 注意下载子库 HFS的下载,作为文件服务器 http://www.rejetto.com/hfs/?f=dl GF的...原创 2018-12-30 11:11:20 · 4875 阅读 · 0 评论 -
GameFramework篇:StarForce流程讲解
环境:StarForce matser 3.1.7之前我们就提到过流程贯穿游戏的始终,那么今天就来详细的说一下流程模块ProcedureLauch为游戏入口流程,我们就来看他是什么,他做了什么一眼看见他继承自ProcedureBase我们一层层跟进,发现他和状态机有着不可分割的关系,每个流程都是一个状态他们的关系大体上可以用这个UML图解释,当然这只是非常非...原创 2018-12-28 20:23:42 · 2992 阅读 · 1 评论 -
GameFramework篇:StarForce全解读(总目录)
说实话,我刚开始看这个官方案例的时候,其实心里是没底的,因为模块和封装着实有点夸张(别误会,是我层次低的原因,并不是说这样不好)。好了,说这些是想告诉大家,不要慌,我一个菜鸡都能挺过来你们也可以,并且,在看项目的过程中,你对C#这门语言的掌握应该会更上一层楼,因为用到了相对高级的语法(对我来说泛型约束都是高级的~)。这篇博客是总目录,分模块讲解StarForce案例,因为本身StarForce就是...原创 2018-12-26 21:16:15 · 15058 阅读 · 0 评论 -
GameFramework篇:StarForce全解读(前言)
从这篇文章开始,我就和大家一起,以一个初学者的角度开始学习GF这个框架。本来我是想以一层层剖析代码的形式来和大家一起学习,想了想又觉得不妥,授人以鱼不如授人以渔,应当更多的说学习的方法。所以我决定以UML图的形式来和大家一起学习。把宏观联系说清楚,至于更细节,更底层的代码,应当自己去钻研。有人说这没必要,我觉得有必要,因为只有你理解了框架的实现原理,你才能更好地使用框架,而不是被框架限...原创 2018-12-26 19:31:53 · 1896 阅读 · 0 评论 -
GameFramework篇:解决打包后丢失Shader问题
看到这些粉色的小点点没有,这都是Shader丢失导致的但是我们在打AB的时候明明已经打好了啊。原来是Unity为了性能优化,并没有将所有Shader在打包的时候都加进去所以我们需要手动添加我们需要的Shader比如我们这个特效是 选中自己的平台include自己要用到的shader,Ctrl+S保存一下重新打包...原创 2018-12-21 13:30:08 · 2144 阅读 · 2 评论 -
GameFramework篇:Font texture for dynamic font MainFont is missing. Please reimport the Font. All dyna
在打完AB包,运行时出现了Font texture for dynamic font MainFont is missing. Please reimport the Font. All dynamic fonts created with earlier Unity 3.0 betas need to be reimported.他所谓的Reimport不是这样而是删除之后,再导入。...原创 2018-12-21 13:01:37 · 715 阅读 · 0 评论 -
GameFramework篇:AssetsBundle Tools配置
我们从官网可以知道首次为一个项目编辑 AssetBundle 资源,需要先编辑配置文件 Assets/GameFramework/Configs/AssetBundleEditor.xml可是当我们回过头来看StarForce案例却发现,并没有这个目录我们注意到,打开工程会有这个Log(自己新建工程就会出现警告,加载失败,应用默认路径)追踪进去继续顺着Load追踪目...原创 2018-12-20 16:04:21 · 2011 阅读 · 0 评论 -
GameFramework篇:使用源码替换GameFramework.dll
为了方便我们研究Demo和学习框架,我们要把GameFramework.dll替换成源码。在此之前,请确保GF和UGF皆为最新版本。环境:若当前使用的 Unity 2017.3(不含)以前的版本将 Game Framework 源码目录拷贝至 Plugins 目录(若不存在 Plugins 目录,请自行创建)中即可。1.打开项目的UnityGameFramework文件夹,打开...原创 2018-12-18 10:32:42 · 3893 阅读 · 1 评论 -
GameFramework篇:打包需知
打开GameFramework场景,在编辑器模式下找到表示当前资源加载模式是编辑器模式。(个人理解是和正常开发下的资源加载模式无异)那么,如果我们开发完成,要打包项目呢?肯定就不能继续使用编辑器模式加载资源了,因为GameFramework在打包后资源加载方式是通过AB包加载。什么是AB包?AssetBundle的作用是,把资源打包,然后可以动态加载,从而可以实现资源的热更...原创 2018-12-16 09:57:28 · 11008 阅读 · 6 评论 -
GameFramework篇:框架基本理解以及源码下载
先偷偷观察一下E神的GitHub只有三个项目,尽管如此,我还是感受到来自E神的压迫感。我们再来看一下官网的描述什么个意思呢?我们先看UGF可以看到有GameFramework的dll文件,那么它是从哪来的呢?它来自GameFramework 再看UGF的Scripts,里面就是UnityGameFramework.Runtime和UnityGameF...原创 2018-11-05 21:51:22 · 7532 阅读 · 0 评论 -
GameFramework篇:前言
到了现在,我感觉到对引擎的熟悉程度差不多了,也能自己做点小项目,可是着手写大点的项目的时候,经常会有无从下手的感觉,设计模式也看了,别人源码也能看懂,可是就是写不出人家那种水平的代码,于是我决定学习一个游戏框架,熟悉他的流程,思想,并且应用到项目中。我写这个专栏的动机如下: 学完整理成博客,让自己理解更深刻。 互联网教会了我很多,我要尽自己的一份薄力回报。 希望帮助到...原创 2018-11-05 12:17:35 · 2278 阅读 · 0 评论