Match Puzzle / Unity Project

MatchPuzzle

In Development

盤面サイズや消去条件を設定できるマッチパズルを目標に、基礎部分から制作しているプロジェクトです。 現在は盤面配列、背景サイズ、座標変換、単一タイルの生成までを実装しています。

Overview

プロジェクト概要

Unity 6とC#を使用して制作を始めた学習プロジェクトです。 現在のSceneでは8×8の盤面サイズを設定していますが、タイルを盤面全体へ配置する処理や、操作・一致判定・削除処理はまだ実装していません。

Status
In Development
Engine
Unity 6(6000.2.13f1)
Language
C#
Current Board Setting
8×8

Current Implementation

現在実装している範囲

ルール設定項目

盤面の幅と高さ、消去に必要な数、加算スコア、制限時間をInspectorから設定する変数を用意しています。

盤面配列の初期化

設定した幅と高さを使って、各マスのTileControllerを保持する2次元配列を作成します。

背景サイズの調整

盤面サイズに合わせて背景のlocalScaleを変更し、設定値を画面上の大きさへ反映します。

座標変換

配列上のマス番号を、盤面の中央を基準としたワールド座標へ変換する関数を実装しています。

タイル生成の基礎

指定した配列座標をワールド座標へ変換し、Prefabから1枚のタイルを生成する関数を用意しています。

TileControllerの準備

タイル画像の候補、種類番号、移動用データを定義し、現在はRigidbody2Dの参照取得まで実装しています。

Not Implemented Yet

今後実装する必要がある内容

盤面全体へのタイル生成、タイルの入力操作、同色の一致判定、削除と詰め直し、スコア・コンボ・制限時間、ゲーム終了、リトライは未実装です。 まず盤面データと画面上のタイルを対応させるところから段階的に進める予定です。

Code Structure

現在のクラス構成

MatchPuzzleSceneDirector
ルール設定、盤面配列、背景サイズ、座標変換、タイル生成の基礎
TileController
タイルの種類と移動に必要なデータを持つための準備段階
TileController[,]
将来、各マスのタイル参照を盤面位置と対応させて保持する配列

Learning

現在学んでいること

ゲームを完成形から一度に作るのではなく、設定値、盤面データ、座標変換、生成処理の順に小さく分けて実装しています。 未実装部分を明確にしながら、各処理を確認できる単位で追加していく予定です。