- 本文用于记录作者在制作游戏的过程中遇到的问题及解决方案,希望能帮到同样遇上困难的朋友。
为什么要打包csv表存储
unity读取excel与csv都需要一定的时间,现用现读会大幅影响运行效率,尤其是在移动端,因此我们选择将数据提前读取后打包成二进制文件方便读取。
如何读取csv表
在解释之前,先上如下代码:
public void LoadFile(string path)
{
arrayData.Clear();
StreamReader sr = null;
try
{
string file_url = path; //根据路径打开文件
sr = File.OpenText(file_url);
Debug.Log("File Find in " + file_url);
}
catch
{
Debug.Log("File cannot find ! ");
return;
}
string line;
while ((line = sr.ReadLine()) != null) //按行读取
{
arrayData.Add(line.Split(',')); //每行逗号分隔,split()方法返回 string[]
}
sr.Close();
sr.Dispose();
}
首先我们需要构建出读取文件的函数,我将其放在CsvController脚本中(当然命名可以自己定),使用这个方法将csv中的数据读取到一个string的List当中,之后的步骤就简单了。
public string getString(int row, int col)
{
return arrayData[row][col];
}
public int getInt(int row, int col)
{
return int.Parse(arrayDa