強火で進め

このブログではプログラム関連の記事を中心に書いてます。

テキストファイル(TextAsset)からレイアウト情報を読み込む


プロジェクトファイルはこちら

プログラムはこちら。テキストファイルをTextAssetとして読み込んでいます。
【SetCubeScript.js】

var prefabs: GameObject[];
var layoutDataFile : TextAsset;
private var xMax: int;
private var yMax: int;
private var layoutData: int[];

function LoadLayoutData () {
	var lineArray = layoutDataFile.text.Split("\n"[0]);
	var dataArray;
	var x: int;
	var y: int;
	yMax = lineArray.length;
	if ((lineArray[lineArray.length-1].Trim()) == "") {
		yMax--;
	}
	dataArray = lineArray[y].Split(","[0]);
	xMax = dataArray.length;
	if ((dataArray[dataArray.length-1].Trim()) == "") {
		xMax--;
	}
	layoutData = new int[xMax*yMax];
	for (y=0; y<yMax; y++) {
		dataArray = lineArray[y].Split(","[0]);
		for (x=0; x<xMax; x++) {
			layoutData[y*xMax+x] = int.Parse(dataArray[x]);
		}
	}
}

function Start () {
	var x: int;
	var y: int;
	var xPos: float;
	var yPos: float;
	var prefIdx: int;
	LoadLayoutData();
	for (y=0; y<yMax; y++) {
		for (x=0; x<xMax; x++) {
			xPos = x*2-(xMax-1);
			yPos = -y*2+(yMax-1);
			prefIdx = layoutData[y*xMax+x];
			Instantiate(prefabs[prefIdx], Vector3(xPos, yPos, 0), Quaternion.identity);
		}
	}
}

function Update () {
}

レイアウト情報を保存しているテキストファイル(TextAsset)はこちら。
【layoutdata.txt】

1,0,1,0,0
1,0,1,0,0
1,0,0,0,0
1,1,1,1,1