Skip to content

xtom0369/XConfig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XConfig 是一个基于Unity引擎、可快速入门的、轻量的配置表系统

特性

  • csv => bytes:源文件格式选用了csv,方便进行版本对比,导出格式为读写效率较高的二进制。
  • 自动生成表解析代码:一键生成配置表解析代码,无需手撸解析代码;
  • 基本数据类型:支持byte,bool,int,long,float,Vector2,Color,List等基础数据类型;
  • 双主键:支持配置两个主键,比如英雄等级表需要英雄id和英雄level两个主键共同决定配置行;
  • 表关联:支持不同配置表之间进行关联;
  • 表继承:支持建立表继承关系,比如道具分多种类型的道具,通用道具字段放父表,不同道具的特殊字段放子表;
  • 自定义类型:支持快速添加自定义数据类型,支持后自动支持List的泛型类型
  • 表/行的代码类扩展:支持在扩展类中对表/行的字段数据进行二次处理或组织
  • 热刷新:支持运行时刷新配置表;(当前只支持对已有字段进行修改,不支持增减行或列,避免影响运行时已引用的数据)

文档

快速入门

  1. 使用命令行把仓库下载到本地,并用Unity打开工程
git clone https://github.com/xtom0369/XConfig.git
  1. 添加hello_world.byte配置表。将Assets\Example\Config\csv_template.bytes文件拷贝,重命名为hello_world.bytes

  2. 导出配置表代码。执行Unity菜单【XConfig/Generate Code】,会在Assets\Example\Generate\Code文件夹中生成HelloWorldTable(表类)和HelloWorldRow(行类)。修改表头(比如字段名/字段类型)后需要重新导出代码

  3. 导出二进制文件。执行Unity菜单【XConfig/Generate Binary】,会早Assets\Example\Generate\Bin中生成相应的hello_world.bytes二进制文件。每次修改配置表数据后都需要重新导出。

  4. 初始化配置表模块,只需要执行1次

Config.Inst.Init();
  1. 获取hello_world配置表实例
Config.Inst.helloWorldTable;
  1. 获取表内的所有行数据
Config.Inst.helloWorldTable.rows;
  1. 获取表内的某一行数据(根据主键)
Config.Inst.helloWorldTable.GetRow();

文件夹结构

|-- Example
    |-- Config:配置表,按照例子分文件夹
    |-- Generate:生成内容
        |-- Bin:生成的二进制文件
        |-- Code:生成的代码
    |-- Resources:框架配置
    |-- Script:脚本,按照例子分文件夹

|-- StreamingAssets:例子配置表导出的assetbundle

|-- XConfig
    |-- Editor:框架编辑器代码
    |-- Runtime:框架运行时代码

更多示例

社区

About

a simple config framework for unity game

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages