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