//用来存储数据的数组
string[ ][ ] _ArrayList;
//单例,用来在另一个脚本中调用
public static Data_Csv intense;
void Awake()
{
//单例赋值
intance=this;
//得到表格——文本类型 一定在Resources文件下,typeof是文件类型为TextAsset
TextAsset _TestAsset=Resources.Load(“Data/MyExcilData”,typeof(TextAsset))as TextAsset;
//将得到的文本按换行符分割开,然后赋值给linearray 【0】代表从第一个开始换行开始截取.存储每一行的内容,数组长度就为多少
string[ ] linearray=_TextAsset.text.Slipt(“\r”[0]);
//创建二维数组
_ArrayList=new string[linearray.length][ ];
//把数据放进二维数组里
for(int i=0;i<linearray.length;i++)
{
_ArrayList[i]=linearray[i].Slipt(‘,');
}
}
//根据ID和name得到数据 返回值为 想得到的数据,ID为表格里面的ID ,name为列
public float GetDataByIdAndName(int ID,string name)
{
//判断存储数据的数组是否为空
if(_ArrayList.Length<=0)
{
return float.Parse(“");
}
//行
int row=_ArrayList.Length;
//列
int col=_ArrayList[0].Length;
//遍历每行
for(int i=0;i<row;i++)
{
//格式化ID,在ID前加换行符,因为表格换行的时候,上一行的最后,和这一行的开始会有一个换行符
string strID=string.Format(“\n{0}”,ID);
//判断数组里的ID是否等于传进的ID
if(_arrayList[i]==strID)
{
//遍历每列
for(int j=1;j<col;j++)
{
//如果第一行的列名有和传进的name相同的话
if(_ArrayList[0][j]==name)
{
//返回这个行列定位的数
return float.Parse(_ArrayList[i][j]);
}
}
}
}
return float.Parse(“");
}
调用方法
print(Data_Csv.intance.GetDataByIdAndName(3,”要查询的东西"));