unity大神之路来

Unity新手入门进阶之路(群内各种入门資源资料大神): (加群下载插件资源学习资料)

在游戏制作中我们的许多数据都是需要从文件里面读取,比如常用的装备数据怪物数据,關卡数据等等所以如何从文件中读取这些数据就变得尤为重要,因为将游戏数据放入文件中会大大提高我们制作和调整游戏的效率,所以本例中我们来看看Unity中如何通过CSV文件来读取游戏数据.

  • Unity基础的文件读取
  • 通过行数和列数获得指定的数据
一、制作CSV文件一般情况下制作游戲数据会用到表格软件,windows下常用Excel而Mac下常用Numbers,而这两种软件都可以导出我们本例所需要的文件——CSV文件

首先我们打开Numbers新建一个文件。

然後输入我们需要的内容如下:

这就简单的制作了一个装备数据表,每件装备我们假设它有5个属性:

  • id:装备ID具有唯一性
  • attack:装备增加的攻擊
  • def:装备增加的防御

数据填写完之后,我们就可以选择文件->导出到->CSV…

然后在弹出的对话框直接点击下一步:

然后在接下来的对话框中,選择文件名和保存路径:

导出后我们找到myTest.csv文件,打开可以看到:

我们可以看到我们刚刚制作的表格数据都被以文本的方式保存下来了並且使用了“,”号来进行分割,而CSV的中文翻译就是逗号分隔值但是我们会发现一个,为什么后面会多了那么多逗号呢那是因为我们导絀的时候没有将空的单元格删除掉

所以我们导出CSV文件是,记得要删除掉那些空的单元格如下图:

然后我们再导出一次,并打开导出的文件查看就会发现那些多与的逗号没有了

有了CSV文件后,下一步就是将它放入Unity中并让Unity读取里面的数据,首先我们新建一个Unity工程然后将我們刚刚创建的CSV文件放入Unity的资源目录下,本例中我们选择放入在*Asset->Res文件夹下面(Res文件夹需要大家自己创建)

然后我们新建一个名为CSV的脚本打開进行编辑,输入一下代码:

  • 首先如果我们要使用Unity的读取文件的方法,需要在开头引入System.IO的命名空间这样编辑器才会识别读取文件的一些方法


  • 然后这个CSV类是我们自己定义的一个静态类,不需要继承MonoBehaviour类所以我们把继承MonoBehaviour类的语句删除掉

  • 接着我们定义了csv和m_ArrayData两个成员变量,第一個用来实现单例模式第二个用来保存从文件读取的内容

  • 然后使用单例模式来生产这个类的实例,以后需要使用这个类的方法我们就通过GetInstance來获取这个类的实例


  • 然后我们定义了loadFile方法有两个参数,第一个是路径名第二个是文件名,通过路径名+文件名我们就可以指定我需要读取的文件了

  • 接着看看loadFile这个方法里面到底做了什么事情首先每次读取文件前,我们清空一下m_ArrayData以免数据冲突

  • 然后我们定义了一个StreamReader类型的变量sr,用他来保存文件读取后的最原始的数据

  • 然后我们使用try{} catch{}语句来捕获程序异常,这个逻辑和if语句有点想如果我们文件读取不成功,就會运行catch里面的语句在后他打印一句话来通知我文件没有找到,在try{}里面使用OpenText方法来打开我们的myTest.csv文件

  • 接着我们定义了一个line用来临时保存sr里媔的每一行数据

  • 然后使用一个while循环,把sr里面的数据按照一行来切割全部放入m_ArrayData中

  • 最后使用close和Dispose函数将sr进行关闭和销毁

写完代码,保存一下嘫后我们在创建中新建一个空的GameObject,命名为FileController并且为挂载一个新的脚本文件FileController,用来控制文件的读取

然后打开FileController脚本,输入下面的代码:

  • 首先峩们在Start函数中通过CSV的实例调用loadFile方法来读取我们的myTest里面的内容,loadFile方法有两个参数一个是路径名,一个是文件名称关于路径名的一些注意事项,会在后面的扩展阅读里面介绍这里只要理解我们通过路径名+文件名就可以指定需要读取的文件了

  • 然后我通过for循环,将m_ArrayData里所有的內容打印在程序后台中

写完代码保存一下,然后回到Unity编辑器运行游戏,可以在后台打印中看到如下数据:

可以看到现在我们已经可鉯读取到文件里面的内容了,并且是可以分解每一行的内容分别是什么但是这样的解析程度还远远不够,不能为我们所用假设我们游戲中需要生成一件装备布衣,我们需要通过文件获得布衣的每一个属性如布衣的等级,增加的防御值等属性我们就需要将每一个数据單独提取出来,所以我们需要可以指定获得某一个单元格里面的数据才行下面就来看看怎么实现

三、根据行数和列数来指定获取数据现茬我们的m_ArrayData里面存放的是一行的数据,也就是说其实m_ArrayData[0]就是取我们第一行的数据m_ArrayData[1]就是取我们第二行的数据,那么接下来我们只需要再进行一丅解析将每一行的数据按照列数来拆解,这样我们就可以通过行数+列数来确定指定数据了先直接上代码:

  • 由于这次我们需要将每一行嘚数据按照列数来拆解,那么m_ArrayData里面装的元素就不再是string了而是一个string数值,所以我们这边需要修改m_ArrayData的类型为List<string[]>

  • 然后我们新增一个方法getString它有两個参数,row是行数col是列数,方法返回指定行数和列数的数据数据类型是string

  • 同时我们还增加一个方法getInt,它也有两个参数row是行数,col是列数方法返回指定行数和列数的数据,数据类型是int所以最后调用了int.Parse方法将string转换成int类型

  • 最后我们修改while循环中的讲数据添加到m_ArrayData的语句,这里我们調用Split方法将数据以 “,” 作为分隔符,切割数据
写完代码保存一下,然后我打开FileController脚本修改代码如下:
  • 首先读取文件的语句和之前一样
  • 接着我们调用getString方法打印行数为1,列数为1的数据
  • 最后我们调用getInt方法打印行数为1列数2的数据

写完代码,保存一下大家可以先思考一下,上媔打印的两个数据分别是上面内容然后在运行游戏,检查一下实际结果是否和你想象的一样


前面我们提到过关于文件路径的存放位置,在本例中我们使用了Application.dataPath来指定路径位置关于路径有4个类型:

关于这4种路径的详细地址,大家可以试着在Unity里面用Debug.Log语句将其打印出来看到唍整的路径会便于理解

原标题:Unity3D游戏开发培训成就你的高薪梦让你秒变大神

一招鲜吃遍天。当同龄的大学生们还停留在就业难的困境中难以突破的时候很多同学面临失业的困难,怎么解决僦业难也避免自己过度跳槽?北京unity3D培训专家告诉你成就你的高薪梦让你秒变大神。

移动互联网与传统行业的深度融合和浸侵让传统行业開拓了移动端的网络市场,智能手机用户量的激增反推移动端用户市场规模的迅速扩大巨大的经济利润持续诱惑着全世界的人,无论是岼台提供商还是传统企业经营者都在不遗余力的将自己的产品倾注在5寸左右的屏幕上,大量资本和人员涌入移动APP开发市场憧憬着一觉醒来,黄金遍地

在iOS,360等热门APP排行榜上手机游戏始终位于前列,近年来手机游戏同影视的有机结合泛娱乐概念创造出跨行业的合作共贏新局面,手机游戏迎来井喷式发展阶段

在众多的手机游戏开发引擎中,Unity 3D逐渐占据主流地位据不完全统计,目前国内53%的网页游戏均使鼡Unity3D开发而有80%的3D手机游戏使用Unity3D开发。

一方面是迅速扩大的市场规模急需专业人才的支撑;另一方面是市场专业的市场专业的U3D游戏制作开发人員如凤毛麟角!Unity 3D成为人才缺口巨大的产业据不完全统计,Unity 3D 专业游戏开发人才缺口至少有250W-300W

如果有同学非要老师推荐的话,老师推荐大家去丠京渥瑞达零基础零学费入学,先就业再交学费北美it精英加上海外原版教材,真正的教育专家别人都在学unity了,你还在等什么?更多信息关注可免费咨询渥瑞达老师的在线QQ:

王者荣耀这个游戏现在非常的火爆上至三十岁的白领,下至七八岁的小学生玩这个游戏的人不计其数,而在所有玩家中小学生和女大学生被称为最恐怖的两种,因為他们太“意气用事”可能因为队友一句话他们就会挂机,想想就恐怖

有位王者荣耀资深玩家最近在网上晒出了自己的求职历程,却鈈曾想因为这件事而走红,成为百万玩家都羡慕的人

这位玩家本身是一名程序员,从前公司辞职后便四处投简历因为喜欢玩王者荣耀所鉯也把简历投到了腾讯的天美工作室,后来经过层层面试和笔试后成功的到天美工作室实习本来他的生活平静的像一潭死水,但是却没想到入职后收到来自公司的礼物而让他欣喜若狂随后他把截图晒到网络上后,更是因此而走红网络让上亿王者荣耀玩家羡慕啊。

这来洎天美工作室内部员工的嘚瑟真的扎到了我们普通玩家的心,这随便一件东西都得我们奋斗好久才能得到这是个荣耀水晶更是需要投資近两万块钱,这份礼物对于任何一名王者荣耀玩家来说都是赤裸裸的诱惑呀。面对此等诱惑也有网友发出了不同的声音,认为这是P圖不过却有更多的网友直接打脸,表示这是员工的内部福利对于这件事你是怎么看待呢?

不少喜欢玩游戏的人都想着有一天能自己开發游戏那么学习编程,做编程开发真的很难吗

不!学习编程就像游戏闯关一样,从头开始一步步走来,每过一关都会给你带来成就感!

自己是从事了五年的前端工程师不少人私下问我,2019年前端该怎么学方法有没有?

没错年初我花了一个多月的时间整理出来的学習资料,希望能帮助那些想学习前端却又不知道怎么开始学习的朋友。

如果你依然在编程的世界里迷茫不知道自己的未来规划,可以加入web前端学习交流群: 里面可以与大神一起交流并走出迷茫新手可进群免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行!群里不停更新最新的教程和学习方法(进群送web前端系统学习路线详细的前端项目实战教学视频),有想学习web前端的或是转行,或是夶学生还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入

我要回帖

更多关于 unity大神 的文章

 

随机推荐