Unityゲーム開発スタジオ スタジオしまづ

初心者向けUnity講座・ 統計・機械学習関係についてつらつらと

Unity制パズルゲーム「Shima-zu Zero」の作り方:Textデータを2次元配列配列に変換【Unityゲーム開発】

アプリ

play.google.com

Shima-zu Zero(しまーづゼロ)

Shima-zu Zero(しまーづゼロ)

  • Tsunehiko Shimazu
  • Games
  • Free
apps.apple.com

解説動画

youtu.be

画像ファイル

ShimazuZero - Google ドライブ

全体の流れ

  • タイルの作成
  • 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);
        }
    }
}

スタジオしまづの関連動画

d35e.uscreen.io