Unity制パズルゲーム「Shima-zu Zero」の作り方:Textデータを2次元配列配列に変換【Unityゲーム開発】
アプリ
apps.apple.com解説動画
画像ファイル
全体の流れ
- タイルの作成
- Textデータを2次元配列配列に変換(この記事)
- StageManagerでタイル配置
- クリックで十字反転
- ゲームクリアの実装
- コードの整理とまとめ
- 複数ステージの実装
Textデータを2次元配列配列に変換
- Textデータを用意
- StageManagerクラスを作成
- Textデータを行,列に分割して列挙型の二次元配列に変換
ソースコード
(動画より先に書いたやつなので多少ズレがあります:不具合あればコメントいただけると助かります)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class StageManager : MonoBehaviour { public TextAsset stageFile; TileType[,] tileTable; void Start() { LoadStageFromText(); DebugTable(); } void LoadStageFromText() { string[] lines = stageFile.text.Split(new[] {'\n','\r'}, System.StringSplitOptions.RemoveEmptyEntries); int columns = 5; int rows = 5; tileTable = new TileType[columns, rows]; for (int y = 0; y<rows; y++) { string[] values = lines[y].Split(new[] {','}); for (int x = 0; x < columns; x++) { if (values[x] == "0") { tileTable[x, y] = TileType.DEATH; } if (values[x] == "1") { tileTable[x, y] = TileType.ALIVE; } } } } void DebugTable() { for (int y = 0; y < 5; y++) { string debugText = ""; for (int x = 0; x < 5; x++) { debugText += tileTable[x, y] + ","; } Debug.Log(debugText); } } }