Unity跨平臺讀取檔案(txt,csv,xml等)
阿新 • • 發佈:2019-01-08
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ConfigManager
{
//宣告一個字典key為int型別,value為Objectinfo型別(Objectinfo為一個類)
public Dictionary<int, ObjectInfo> objectsInfoDict = new Dictionary<int, ObjectInfo>();
//預設建構函式
public ConfigManager()
{
initObjectInfoList("ObjectsInfoList");//形參是檔案的名字作為路徑載入
}
//讀取檔案並儲存在字典中
void initObjectInfoList(string path)
{
string[][] strings = ReadFile.GetCSVStrings(path);
//如果有標題的話i=1,沒有為0
for (int i = 0; i < strings.GetUpperBound(0) + 1; i++)
{
ObjectInfo info = new ObjectInfo();
info.id = int.Parse(strings[i][0]);
info.name = strings[i][1];
info.icon_name = strings[i][2];
string str_type = (strings[i][3]);
ObjectType type = new ObjectType();
switch(str_type)
{
case "Drug":
type = ObjectType.Drug;
break;
case "Equip":
type = ObjectType.Equip;
break;
case "Mat":
type = ObjectType.Mat;
break;
}
if(type==ObjectType.Drug)
{
info.hp =int.Parse(strings[i][4]);
info.mp = int.Parse(strings[i][5]);
info.price_sell = int.Parse(strings[i][6]);
info.price_buy = int.Parse(strings[i][7]);
}
objectsInfoDict.Add(info.id,info);
Debug.Log(objectsInfoDict.Keys.Count);
}
}
}
//物品的型別
public enum ObjectType
{
Drug,
Equip,
Mat
}
//物品的屬性
public class ObjectInfo
{
public int id;
public string name;
public string icon_name;
public ObjectType type;//通過判斷物品的型別來對相應的值設定
public int hp;
public int mp;
public int price_sell;
public int price_buy;
using System.Collections;
using System.Collections.Generic;
public class ConfigManager
{
//宣告一個字典key為int型別,value為Objectinfo型別(Objectinfo為一個類)
public Dictionary<int, ObjectInfo> objectsInfoDict = new Dictionary<int, ObjectInfo>();
//預設建構函式
public ConfigManager()
{
initObjectInfoList("ObjectsInfoList");//形參是檔案的名字作為路徑載入
}
//讀取檔案並儲存在字典中
void initObjectInfoList(string path)
{
string[][] strings = ReadFile.GetCSVStrings(path);
//如果有標題的話i=1,沒有為0
for (int i = 0; i < strings.GetUpperBound(0) + 1; i++)
{
ObjectInfo info = new ObjectInfo();
info.id = int.Parse(strings[i][0]);
info.name = strings[i][1];
info.icon_name = strings[i][2];
string str_type = (strings[i][3]);
ObjectType type = new ObjectType();
switch(str_type)
{
case "Drug":
type = ObjectType.Drug;
break;
case "Equip":
type = ObjectType.Equip;
break;
case "Mat":
type = ObjectType.Mat;
break;
}
if(type==ObjectType.Drug)
{
info.hp =int.Parse(strings[i][4]);
info.mp = int.Parse(strings[i][5]);
info.price_sell = int.Parse(strings[i][6]);
info.price_buy = int.Parse(strings[i][7]);
}
objectsInfoDict.Add(info.id,info);
Debug.Log(objectsInfoDict.Keys.Count);
}
}
}
//物品的型別
public enum ObjectType
{
Drug,
Equip,
Mat
}
//物品的屬性
public class ObjectInfo
{
public int id;
public string name;
public string icon_name;
public ObjectType type;//通過判斷物品的型別來對相應的值設定
public int hp;
public int mp;
public int price_sell;
public int price_buy;