GameFramework解析:数据表(DataTable)
前言曾经听过这样一个故事,貌似在某个项目,某位程序大拿在项目中引入的导表工具不支持策划在Excel表中写入任何的中文,自然每张表中就没有策划任何的中文注释,程序的使用也是见招拆招,最终形成了一道天然的“防护壁垒”。最后拍拍屁股走人,可谓前人栽树后人遭殃,直到后面得遇高人,才使得配表这个功能幽而复明,回到正轨。开个玩笑,让我们进入正题。游戏开发中数据表是策划控制游戏各项功能实际运行的重要工具,是连接策划和程序的桥梁。它存储和管理者游戏中的各种数据,通过改表就可以对游戏中的各项数据和功能进行修改,提高了游戏设计和功能的可拓展性和灵活性。来看一下官方的定义: 可以将游戏数据以表格(如 Microsoft Excel)的形式进行配置后,使用此模块使用这些数据表。数据表的格式是可以自定义的。 导表流程这里的导表可以分为两个阶段来说,一是生成数据表DR类,二是读取数据表里面的数据并提供给其他模块使用。 生成数据表DR类 接下来就其几个流程进行单独的说明。 GenerateDataTables:点击Unity自定义选项中的”Generate...
GameFramework解析:全局配置(Config)
GF里面的全局配置并不是指的一般意义上的数据表,全局配置表的格式不能随便自定义,它的格式必须与当前的ConfigHelper里面写定的解析格式保持一致
GameFramework解析:事件(Event)
前言事件模块是游戏中很重要的一个模块,而GameFramework的事件模块在网上能找到很多文章,但基本都是讲解其应用方面的,并没有对其源码进行分析。这里阐述此模块通过如下三个方面:基本的类内信息说明,GF里面存储管理事件的形式,事件抛出和取消订阅的冲突问题。这里就不用应用举例了,有需要可以查看下面参考文档。 Event模块结构 从上面的结构图也可以看出,EventManager作为事件模块的管理器,其作用主要是对于EventPool的功能进行封装,并提供对应的接口给外部使用。因此本模块的核心逻辑主要在EventPool中。 EventPool作为事件模块的核心, EventPool处理着事件的发布、订阅、移除等功能的同时也会严格检查事件订阅的匹配情况,不允许出现重复订阅,也不允许出现重复取消订阅或取消订阅尚未订阅的事件处理函数,如果出现这些情况,将会抛出异常。观察者模式可以从“发布者”和“订阅者”两个角度来看,EventPool里面对应的两个方面便是 “事件” 和 “事件处理函数”...
C#:委托与事件
前言因为接下来想要整理一下游戏里面的事件模块,而当前项目的业务开发都是通过 Lua 进行的,有一阵子没有写 C#了,回想 C#的委托和事件,有些细节一时模糊了起来,所以打算干脆把相关的知识点整理一下,就当做复习了。 委托什么是委托无论是委托还是事件官网都没有一个简单直白的定义,只能说理解万岁。 委托:用于封装方法的一种引用类型,类似于 C++的指针,但其类型安全可靠。通过封装多个方法到一个变量中,调用此变量就可以调用所有绑定的方法。你也可以将它理解性地看做“方法的容器”。 委托的写法12345678910111213141516171819202122232425/// ---- 普通写法------// 1.定义委托类型,这一步定义的是委托的类型,并不是委托的实例public delegate void MyEventHandler();//2.定义委托变量public MyEventHandler MyEvent;//泛式委托public delegate void MyEventHandler<in T1, in T2>(T1 arg1, T2...
兴趣使然地开通了自己的博客
随着一个念头的油然而生,此个人博客也被孕育而出。 目的 创建一个能自我表达的地方。不知数年过去,想到此番此景又会有何感悟。 记录并分享学习到的知识点。本人之前的笔记基本上是写在 Notion 上的,笔风相当随意,以自我理解为主要目的。查找资料的时候会看到各种各样的文章和写法,有的大佬的文章对于知识点研究之深,拆解之详细且通俗易懂,让人直呼牛逼,恍然大悟之余也会对所有愿意分享的人心生感谢。倘若自己也能效仿尽一份力,锻炼自己表达能力的同时,也能帮助到他人,则是不胜荣幸。 博客的搭建本博客使用 Hexo...