2014年11月5日水曜日

Unity CSVファイルの読み取り

UnityのC#スクリプトでCSVファイルを読み取るサンプルソースです。
Resources.LoadはAsett/Resourcesフォルダのファイルを読み込みます。
Resourcesフォルダを作成し、そこにファイルを配置してください。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
//適当なゲームオブジェクトに貼りつけてください
public class FileSousa  : MonoBehaviour{
private string[,] CsvDate1;

void Start () {
CsvDate1= readCsv ("Namelist");
Debug.Log (CsvDate1 [2, 0]);//三行目の一列目を表示例
}

private string[,] readCsv(string fileName){

TextAsset ta = Resources.Load(fileName, typeof(TextAsset)) as TextAsset;
//改行コードで一次配列に
string[] lineArray = ta.text.Replace("\r\n", "\n").Split('\n');   
ArrayList dataList = new ArrayList (lineArray);

//行数と列数を
int lineCount =  dataList.Count;
string tmp =  dataList [0].ToString();
string[] tmp2 = tmp.Split(","[0]);
int colCount = tmp2.Length;
string[,] tmpCsvData = new string[lineCount, colCount];
int i = 0;


foreach (string str1 in  dataList) {
int j = 0;
string[] tempLine = str1.Split(',');
foreach(string str2 in tempLine){
//二次配列を作成
tmpCsvData[i, j] = str2;
j++;
}
i++;
}
return tmpCsvData;
}
}

MonoBehaviourを削除して普通のクラスにしてもOKです。
ゲームデータをCSVで管理できます。

1 件のコメント: