【Unity C#】2Dスライドパズル(15パズル)の作り方 #5 クリア判定
クリア判定
このレクチャーでは、ゲームのクリア判定を作ります
まずStart関数に
全ピースの初期位置を保存する処理を追加します
// Start is called before the first frame update
void Start()
{
ここから
// 初期位置を保存
startPositions = new List<Vector2>();
foreach (var item in pieces)
{
startPositions.Add(item.transform.position);
}
ここまでを追加
// 0と隣接するピース
List<GameObject> movablePieces = new List<GameObject>();
// 0と隣接しているピースをリストに追加
foreach (var item in pieces)
{
if (GetEmptyPiece(item))
{
movablePieces.Add(item);
}
}
// 隣接するピースをランダムでいれかえる
int rnd = Random.Range(0, movablePieces.Count);
GameObject piece = movablePieces[rnd];
SwapPiece(piece, pieces[0]);
// ボタン非表示
buttonRetry.SetActive(false);
}
解説
// 初期位置を保存
startPositions = new List<Vector2>();
foreach (var item in pieces)
{
startPositions.Add(item.transform.position);
}
全ピースの初期位置を保存するためのstartPositions リストを初期化して
全てのピースの初期位置をリストに追加します。
これが正解の位置となります。
ピースを指定回数シャッフル
この記事が気に入ったらサポートをしてみませんか?