前庭概要

昨晚发布了入门级游戏发行表方案《独立玩家:unity游戏制作—— excel-JSON发行方案》,据说很多小伙伴缺乏自动化。

本着有需求就要有实现的想法,今天小编就再研究一下这个自动化的工具。

需求

  • 使用Excel或WPS表格配置和修改,保存为xls文件
  • 使用python制作工具,运行后将根据Excels文件夹中的所有xls文件自动生成数据配置类。

正文

为啥要用python呢?python这门语言,对于操作文件来讲,是非常好用的。

首先是一些准备工作:

  • 安装python3
  • unity中导入Li(文末会提供)
  • 建立文件夹结构,其中xls文件夹用来存放excel表格,json文件夹用来放生成的json文件,cs文件夹用来放生成的实体类。

然后我们来创建一个命名为XXXCon的表格文件(暂时没有支持xlsx的表格)

表格内部结构如下图:第一行是变量名(转json的时候会变成小写,所以请一律小写)

第二行是对当前列的解释,对于转换来说没有什么用,只是为了方便阅读

第三行用来标记当前列数据类型,也是用来生成csharp实体类时创建类型的依据(暂时只支持int、string、double)

第四行以下就是数据了。

另外,为了方便读取,我们默认第一列都写id,用来作为实体类中Dictionary的Key值

之后,我们创建名e2j的python文件,文件引入os、xlrd、collections、json、codecs库

接下来写出xls、json、cs文件夹的路径

然后我们创建Unity实体类的模板,python的字符串用起来很不习惯,就用这种笨笨的+=符号来写吧。另外,我没有写换行符号之类的,所以最后生成的实体类代码都在第一行,如果你想提升可读性,那就自己加上换行符吧。我们来看一下这个类模板:其中有一些占位符,在生成的时候会被替换掉,比如ClassName、DataName、DicName,后面会根据xls的名字来替换掉这些名字。再后面Variables占位符会根据xls中第一行的变量名来生成变量来替换它。

再接下来,小编封装了一个长长的没有多少注释的代码,他的作用就是将一个xls文件转换成json和csharp实体类,主要的内容是使用xlrd解析Excel表,然后使用json库将他转化为json字符串,然后用os库将字符串写入文件。同样的使用模板生成csharp代码块。这一部分有一些很容易出错误的细节,感兴趣的同学可以在文末链接里获取代码。

函数准备好了,接下来用os.listdir遍历所有excel,使用函数处理就好了。

命令行运行e2j

然后就可以生成了json和CSharp实例类了。

最后再执行一次手动操作,将生成的json文件都移动到Resources文件夹中。

CardCon实例类中提供了Dictionary,以id为键。所以,在代码里就可以将CardCon实例化,然后从Dictionary中取数据了。

小结

python的文件操作给游戏开发提供了很大的便利,小编虽然用了一天的时间来研究这个东西,但是,以后给小编的操作带来的便利性,可以节省更多的时间哦。

因为是第一次写,所以还有很多不足的地方,请大佬们多多指教。

最后附上文件地址:

链接:

提取码:rlwy

1.《cs config,干货看这篇!独立游戏人:基于python的excel配置表转json转csharp实体类工具》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《cs config,干货看这篇!独立游戏人:基于python的excel配置表转json转csharp实体类工具》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/173186.html