見出し画像

【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 リストを初期化して
全てのピースの初期位置をリストに追加します。
これが正解の位置となります。

ピースを指定回数シャッフル

ここから先は

3,667字 / 4画像

この記事が参加している募集

#ゲームの作り方

864件

この記事が気に入ったらサポートをしてみませんか?