首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

unity3d学习札记(十七)-unity3d读取csv文件

2013-10-25 
unity3d学习笔记(十七)--unity3d读取csv文件本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。

unity3d学习笔记(十七)--unity3d读取csv文件

本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。

http://blog.csdn.net/lzhq1982/article/details/12968309


在mac os下写过手游程序的应该都清楚csv文件,它类似于excel表格文件,但csv文件里的数据是以逗号分隔的。unity3d并未提供直接读取csv文件的方法,那怎么办呢,没关系,很简单,下面看我是怎么做到的。先声明,我的操作系统是mac os。


1、创建csv文件

既然做实验嘛,没有资源怎么行,自己徒手写个csv文件吧,打开Numbers工具,新建一个表格文件,我的文件编辑截图如下:

unity3d学习札记(十七)-unity3d读取csv文件

创建完成后,导出成csv格式,我这里文件名为test.csv;


2、改成txt格式

既然unity3d不认识csv,那么我们人工处理一下,很简单,像上一篇文章一样,简单粗暴的把csv的扩展名改成txt吧,谁让unity3d比较亲txt呢,更改后是test.txt,打开后是这个样子的:

unity3d学习札记(十七)-unity3d读取csv文件

3、读取txt文件

上代码:

string GetDataByIdAndName(int nId, string strName){if (Array.Length <= 0)return "";int nRow = Array.Length;int nCol = Array[0].Length;for (int i = 1; i < nRow; ++i) {string strId = string.Format("\n{0}", nId);if (Array[i][0] == strId) {for (int j = 0; j < nCol; ++j) {if (Array[0][j] == strName) {return Array[i][j];}}}}return "";}
上面代码也很简单,先循环行数据,判断ID是否相同,找到ID后再循环列数据,看名称是否相同,然后返回行列对应的数据。这里有一点值得注意,就是判断Id的时候,id前面会有个“\n”,这是换行标识符,你可以用Debug的方式看一下Array,除了第一行,每一行的Id都会有个“\n”的前缀,所以必须这么判断。这时打印GetDataByIdAndName(4,"name")应该是“梨”。

就这些,有问题欢迎提问,哈哈。


1楼sunicdavy昨天 18:06
你这样读取格子里带双引号的会出错的
Re: lzhq1982昨天 18:08
回复sunicdavyn哪句呢,都是实测过的,没有错啊

热点排行