
プロジェクトファイルはこちら。
プログラムはこちら。テキストファイルを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