01.配置表管理工具介绍
B站地址:传送门
一、 介绍
MxConfig 是一个自动化管理我们配置表的工具。是 MxFramework框架 的一个子模块。配置表的格式比较常用的有Json格式、Xml格式、CSV格式等,这些格式手动书写会存在 容易出错、不易扩展、工作量大、难以维护等一系列问题。而 MxConfig工具,就是为了解决这些问题而存在的,我们可以通过 Excel 来书写我们的配置表,不需要写任何脚本,一键完成配置表的解析和加载等工作,配置表最终会转换成加密格式,通过模板自定义解析脚本,将解析、加载和扩展 等一系列重复性高的工作交给工具自动生成,大量节省了我们的开发成本。
二、下载源码
1 .前往 GitHub 源码地址:https://github.com/yongliangchen/MXFramework 下载
三、 项目结构
1.源码存放路径
ImportPlugins/MXFramework**/Core/Config
2.模板存放路径
ImportPlugins/MXFramework**/Resources/Template/Config
3.示例工程存放路径
Example/02_Config
4.配置表原始文件存放路径
Res/Csv/IOCsv(动态加载方式的配置表)
Res/Csv/ResourcesCsv(内部加载方式的配置表)
5.自动生成配置表存放路径
StreamingAssets/Config/配置表名称 (自动生成动态加载方式的配置表数据)
Resources /Config/配置表名称(自动生成动内部加载方式的配置表数据)
6.加密算法存放路径
ImportPlugins/MXFramework**/Core/Util/StringEncrypt.cs
7.自动生成的解析和加载代码路径
Scripts /AutoGenerate/配置表名称.cs
四、 加载方式
1.动态加载规则
所有存放在 Res/Csv/IOCsv/配置表名称.csv 路径下的文件都是需要动态加载,一般放在这个目录下的配置表是用来做热更新的,自动生成的数据文件存在 StreamingAssets/Config/配置表名称.txt路径下。(通过以下代码进行加载)
StreamReader streamReader = null;
if (File.Exists(DataPath())) streamReader = File.OpenText(DataPath());
StreamingAssets 目录在Android设备上无法进行io操作,所以我们需要将数据拷贝到persistentDataPath 目录下(详情请参考Example/02_Config/TestIOCsvConfig.cs)
2.内部加载规则
所有存放在 Res/Csv/ResourcesCsv/配置表名称.csv 路径下的文件都是内部加载,一般是存放不需要变更的配置文件,自动生成的数据文件存在 Resources/Config/配置表名称.txt 路径下。(通过以下代码进行加载)
TextAsset textAsset = Resources.Load<TextAsset>(DataPath());
(详情请参考Example/02_Config/TestResourcesCsvConfig.cs)
五、 加密算法
1.异或加密算法
异或是对两个运算元的一种逻辑分析类型,符号为XOR或EOR。与一般的逻辑或OR不同,当两两数值相同为否,而数值不同时为真。异或密码(simple XOR cipher)是密码学中一种简单的加密算法,是指对信息进行异或操作来达到加密和解密目的。按这种逻辑,文本串行的每个字符可以通过与给定的密钥进行按位异或运算来加密。如果要解密,只需要将加密后的结果与密钥再次进行按位异或运算即可。(详情请移步)
2.加密
public static string EncryptDES(string encryptString, string key = "45131929"){}
Key 个数是 8 位默认是“45131929”
3.解密
public static string DecryptDES(string decryptString, string key = "45131929"){}
Key 个数是 8 位默认是“45131929”
六、 如何使用
1.配置表格式(以 TestIOCsvConfig.csv 为例)
2.书写配置表(以 TestIOCsvConfig.csv 为例)
首先我们复制 Res/Csv/IOCsv/ 目录下的模板文件,命名为“TestIOCsvConfig.csv”,然后右键Reveal in Finder
双击“TestIOCsvConfig.csv”文件,以 Excel 软件打开文件,第一行书写的是 数据类型/名称,第二行以后的是具体数据(数组以分号间隔)书写完成 Control+S 保存文件,
或者另存为 CSV UTF-8(逗号分隔)(.CSV)
3.自动生成配置表和解析代码
点击 MXFramework/Config/Generate Script 按钮
(生成的配置表路径和代码路径请参考 二、项目结构)
七、 自动生成的代码 API
1.数据类型(以 TestIOCsvConfig.csv 为例)
2.解析脚本(以 TestIOCsvConfig.csv 为例)
public uint TypeID()//获取类型 ID
public string DataPath()//获取数存放路径
public void Load()//加载数据
public TestIOCsvConfigData GetDataByKey(string key)//通过 key 或 者一条数据,这里指的是 ID,每个数据的第一项
public int GetCount()//获取数据数量
public List <TestIOCsvConfigData> GetAllData()//获取所有的数据
八、 加载和解析配置表
1.加载配置表
private TestIOCsvConfigDatabase m_Database;
m_Database = new TestIOCsvConfigDatabase();
m_Database.Load();
2.解析配置表(以 TestIOCsvConfig.csv 为例)
九、 资料整理
MxFramework 源码:https://github.com/yongliangchen/MXFramework
QQ 交流群:1079467433