unity 配置表 Excel读取

 一般的,策划给到的表格即配置表unity是无法直接使用的,需要我们程序做进一步处理,并读取和序列化。做配置表大多是将表格数据读取后序列化到一个bin文件即二进制文件里,然后在unity运行时去解析,反序列化。当然,这是相对高端技术,为了方便,和小型游戏使用,个人采用另外一种方式,即将Excel表在外部读取,然后json成序列化字符串存入一个文本txt。然后unity里头在运行前进行解析,存储到asset文件。对于编辑器扩展或者 asset 文件不懂点的可以去充下电。

上面是大致的思路,接下来开始实现。

首先要有一个能度表格的工具,经过筛选,我决定使用spire类库,相对易于使用,工具 这里是一个研究spire时候做的一个excel工具,可以下载看看,因为接下来的所有都是基于该工具。

接下来说一下这个工具。由于是unity外部,所以采用窗体程序,排版如下(简陋,勿喷):

 运行后要先选择文件,点击后会弹窗选择Excel文件,这里支持的Excel为07,10,13,如果你安装了其他版本,你可以更改代码,增加支持你安装的版本。具体代码就不在说了,因为代码很简单(……-……)

选定后会有你选择 的文件的路径信息,这时点击序列化,当左侧出现成功,和文件存储位置时,表明成功。(路径默认为你打开的文件的目录下的serlizeFIle文件夹内,会自动创建)。打开文件夹,就可以发现有你表格序列化好的json格式的txt文本。

因为每个表格都会有一个对应的类用于接收数据,为了统一和安全起见,这个数据类我们做到unity外部,作为dll导入unity使用,这时,该工具项目的内容大致如下:

其中data就是最终的类库dll。当然有更改要右键重新生成一下的。class1里边就是对应表格的类。

接下来简单介绍一下解析:

由于没有找到如何动态去获取某一个单元格的数据,只知道指定的方式,所以这里将获取列的数据列表,和行的数据列表,然后自己计算每个数据格子的坐标如【“C3”】等,然后使用坐标值来读取,并存入对应的类,最后将所有的类的链表进行json序列化存入txt

就基本上工具就okl了,接下来讲解反序列化,unity使用。

em ,首先我们需要创建一个asset文件去接受数据,这个不做介绍。但是我们会发现一个问题,就是在编辑器模式下asset文件类没办法调用,即使做成单例,所以要作为资源文件去加载使用,然后解析,存储,如下;

当然,这个方法要想在非运行状态下执行,要使用编辑器扩展,这个也不做介绍,基本功,不会的去充下电***

然后,在你的主控制器里头定义一个public的变量来接受这个asset文件,这样运行时就可以访问了,到这,基本上功能就实现了。经过测试,完美运行,数据获取成功!!

但是注意,打包的时候要把反序列化的哪个脚本和编辑器的东西都删除,否则大不了包。

好了,欢迎各位提出指导性意见和建议!!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值