前庭概要
昨晚发布了入门级游戏发行表方案《独立玩家:unity游戏制作—— excel-JSON发行方案》,据说很多小伙伴缺乏自动化。
本着有需求就要有实现的想法,今天小编就再研究一下这个自动化的工具。
需求
正文
为啥要用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