using UnityEngine; using System.Collections.Generic; using System.IO; public static class CSVReader { public static Dictionary> Read(string filePath) { Dictionary> dict = new Dictionary>(); TextAsset textData = Resources.Load("CSV/" + filePath); using (StringReader reader = new StringReader(textData.text)) { string[] headers = reader.ReadLine().Split(','); reader.ReadLine(); // Skip the second line with column descriptions int rowIndex = 0; string line; while ((line = reader.ReadLine()) != null) { string[] values = line.Split(','); Dictionary entry = new Dictionary(); for (int i = 0; i < headers.Length; i++) { string key = headers[i]; string prefix = key.Substring(0, 2); if (values.Length > i) { string value = values[i]; switch (prefix) { case "n_": entry.Add(key, int.Parse(value)); break; case "l_": entry.Add(key, System.Numerics.BigInteger.Parse(value)); break; case "f_": entry.Add(key, float.Parse(value)); break; case "s_": case "e_": entry.Add(key, value); break; case "b_": entry.Add(key, value == "1" ? true : false); break; default: entry.Add(key, value); break; } } else { switch (prefix) { case "n_": entry.Add(key, 0); break; case "l_": entry.Add(key, System.Numerics.BigInteger.Zero); break; case "f_": entry.Add(key, 0.0f); break; case "s_": case "e_": entry.Add(key, ""); break; case "b_": entry.Add(key, false); break; default: entry.Add(key, ""); break; } } } dict.Add(rowIndex, entry); rowIndex++; } } return dict; } }