前段时间制作AVG,用CSV来存储剧本,由于csv本质是用逗号分隔的文本文件,所以读取CSV并不需要像读取xlsx用插件。同时使用 csv 也比 txt 的编辑更加友好。
核心思路
将CSV文件存放在Resources目录下使用Load读取。用换行和逗号来分割成二维数组。再定义一个方法,通过ID和表头来获取指定位置的值。
关键代码
void ReadMainScenario()
{
mainScenarioTA = (TextAsset)Resources.Load("Scenarios/ScenarioMain") as TextAsset;
string[] lineArray = mainScenarioTA.text.Split('\r');
mainScenario = new string[lineArray.Length][];
for (int i = 0; i < lineArray.Length; i++)
{
mainScenario[i] = lineArray[i].Split(',');
}
}
string GetValue(int id, string name)
{
for (int i = 1; i < mainScenario.Length; i++)
{
if (mainScenario[i][0].Length != 1)
{
if (int.Parse(mainScenario[i][0]) == id)
{
for (int j = 0; j < mainScenario[i].Length; j++)
{
if (mainScenario[0][j] == name)
{
return mainScenario[i][j];
}
}
}
}
}
return null;
}
使用:
string dialogContent = GetValue(77, "内容");