unity3d 学习路线-小白到高手(二)Excel

游戏篇-数据模块 UnityExcelPraser

小白到高手一文章中,我大概的给出了一个系统的u3d知识框架和学习路线脑图。

现在我有些后悔,因为题目太大了,如果每一点都讲的话估计容易不深入,所以经过深思决定来最快的实践讲解方式,相信现在大部分做技术的人都明白,不停的实践会是最快的学好一个项目的关键。到这里就应该选择应该给大家实践一个什么样的demo才能让大家迅速入门并且不是特别的难,很多时候往往进行不下去的是懵X了,demo太难,学习时间太长,太考验读者的坚持能力,而且现在一般做项目也是遇到什么问题就搜解决方案。

    写到这里,我在想我这篇教程的读者应该是谁,我该面向谁写,由于题目已经订好了:小白到高手的学习路线,所以我只能选择真实的商业化项目来作为讲解,这样才能给刚入门的人以正规的标准,给中级人员以实战项目的借鉴,给高手以扩充知识范围的余地。虽然商业化的项目不能直接拿来共享,但是我还是决定抽取项目中的一部分来做讲解。

  说道游戏当中的数值,数据,这一部分是游戏当中最基础,也是最重要的部分。u3d在制作游戏过程中最常用的json/txt/excel/bson/xml等数据格式其实都是想通的,因为任何一种数据格式都可以是byte字节。

    大部分游戏的策划喜欢用excel来写策划数据,所以我们今天要做一个工具UnityExcelPraser,把excel工具直接转换成u3d直接可以读取的txt格式,同时生成数据块类和数据操作类,一次性搞定游戏开发中策划数据存储问题。因为是实践课程,希望大家能跟我一起操作。

第一步:首先我们要有excel表格,可以新建一个表格如下,表格的第一行代表了字段的数据格式;第二行代表了字段描述,这个主要用于辅助理解;第三行代表了字段名称;第四行到最后代表了数据的内容。本表格代表一个车站的相关设施信息。自己建立的表格内容可以随意改动,但是第一二三行各代表的属性是不可已更改的,因为代码中要用到。

 

图1 UserInfo

第二步:打开Demo工程。源码下载地址如下:

github地址:https://github.com/kuangtoby/UnityExcelParser

本工程我才用unity5.5.0f3打开的,对于这样的小demo,版本一般会有什么影响,打开后工程的截图如下:


图2-打开工程


图3-编译表格


图4-生成数据类

如上面3张图所示,打开Example.scene场景,Project工程资源View中底部有个Xlsx文件夹,里面存放的是已经建好的userinfo表格,打开按照图1-UserInfo中的内容更改表格内容,保存,然后回到Unity->Project里面,鼠标右键点击UserInfo表格,点击下拉菜单中的ExcelPraser->Generate Class from excel这个选项,console窗口出现:generate mgr calss success! 如图3编译表格所示。图4显示了生成的数据块。

到目前为止,数据块和数据操作类都生成了,同时在Xlsx/Resources文件夹下生成了Userinfo.txt文件,这个文件就是数据块类真正关联读取的数据,但是不容许修改,因为是自动生成的,如果要改,其实也不会报错,就是你看的数据会变化。

点击运行,如果没有错误Console窗口会打印信息:老掌门CEO  111共2条信息。到这里项目的运行测试算是过了,这仅仅是第一步,也表示我给大家的这个demo没有错误,写的过程中,我也跟大家一起运行了一遍,没问题,可放心使用。

这里的这个工具如何写涉及到unity3d的编辑器编程的内容,ExcalParser工具的实现相对简单,是需要一个脚本:ExcelParser/ExcelParserEditor.cs,当然功能的实现还是必须要用到三个Dll动态库的,他们分别是:Excel.dll    ICSharpCode.SahrpZipLib.dll    System.Data.dll。

ExcelParserEditor.cs这个脚本还是建议大家写一下,然后把Excel的路径更改一下,其实可以把Excel文件移到unity3d工程的外面,更改一下ExcelParserEditor.cs中的读取路径就可以了,这个就算是给大家留的一个作业吧,如果又搞不定的及时留言,我尽力指导。此处不做而更改,以免篇幅过长。

接下还还是主要讲讲UserInfoBean.cs UserInfoMgr.cs,自动生成的类。如图5 Excel-DataBean的映射关系,很清晰的看到,excel中3行的内容生成了UserInfoBean类的字段,这种映射关系保证了数据块类与excel表的数据准确性。

图5 Excel-DataBean的映射


图6 UserInfoMgr.cs类

UserInfoMgr类主要的作用是用来读取UserInfo数据信息,通过GetDataById函数,我们可以获取UserInfo表格中的任何一条数据,不用每次我们手动去写,十分方便,当然这里如果你想做一些特殊的数据操作,需要自己创建一个UserInfoMgr类,采用partical的形式补充当前数据操作类。


图7-Example类

Example类中Start函数中,数据读取的方法简洁易用。到此我们的工具UnityExcelParser工具就讲解完成了。

限于篇幅,在这里对于代码的细致讲解,基础不做深入讲解,如果有希望深入了解的可以添加QQ,我会尽力提供DEMO讲解。

QQ: 3344643873  添加时发送:文章名字。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容