Unityで3D脱出ゲーム

Unity 3D脱出ゲームの作り方その12:パスワードギミックを作成する方法

2020年12月16日

Unityで作る3D脱出ゲームの作り方を紹介している記事その12です。

僕が所属しているオンラインサロンの
先生である嶋津さんが作成された動画を
見ながら勉強した内容について、

3D脱出ゲームの作り方

としてまとめている記事になります。

その12となるこの記事では、

パスワードギミックの作成をする方法

についてお伝えしています。

参考となる動画はこちらです。

【Unity3D】脱出ゲームの作り方 # 12 パスワードギミックの作成

Udemyの場合は

セクション7の57

「オブジェクトの作成」

セクション7の58

「クリックによる変更」

セクション7の59

「正解判定」

セクション7の60

「パスワードギミックの拡張」

の内容です。

スポンサーリンク

この動画で勉強すること

▶︎数字を変更するパスワードのギミックを作成する。

目標1

パスワードのオブジェクトを作成する。

=>Cubeオブジェクトを作成する。(PasswordPanelに名前を変更)

=>大きさを調整する。

=>別のCubeオブジェクトを作成してボタンにする(Buttonに名前を変更)

=>Bottonに数字のテキストを表示させる。

目標2

パスワードのボタンをクリックしたら数字を変更する処理を作る。

=>C#スクリプトを作成する(Passwardスクリプト)

=>C#スクリプトを作成する(PasswardButtonスクリプト)

=>PasswardButtonスクリプトにコードを書く。

=>Passwardスクリプトにコードを書く

目標3

ボタンの設定やコードの修正などを行う。

=>Buttonにイベントトリガーを設定する。

=>Passwardスクリプトの編集を行う。

Passwardスクリプトのコード

パスワードギミックの作成を
行うために作成したPasswardの
コードは以下となります。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Passward : MonoBehaviour
{
    // 正解の数値
    [SerializeField] int[] correctNumbers = default;

    //現在の数値:PasswardButtonのNumberを見ればいい
    [SerializeField] PasswardButton[] passwardButtons = default;

    // クリックするたびに現在のパネルの数値と正解を比較
    // 一致するならクリアログ


    //クリアした時に実行する関数
    public void CheckClear()
    {
        if(IsClear() == true)
        {
            Debug.Log("クリア");
        }
    }


    //クリアしているか判定する関数
    bool IsClear()
    {
        // 正解しているかどうか
        // =>1つでも一致しなければfalse
        // =>全てのチェックをクリアすればtrue

        for(int i=0; i<correctNumbers.Length; i++)
        {
            if (passwardButtons[i].number != correctNumbers[I])
            {
                return false;
            }
        }
        return true;
    }
}

PasswardButtonスクリプトのコード

Buttonに設定するために作成した
PasswardButtonスクリプトの
コードは以下となります。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;


public class PasswardButton : MonoBehaviour
{
    [SerializeField] TMP_Text numberText = default;
    public int number;

    private void Start()
    {
        number = 0;
        numberText.text = number.ToString(); //テキストの数値を変える
    }


    // 実行されたら数値を変える
    public void OnClickThis()
    {
        number++; // 数値を+1する
        if(number > 9) // もし9を超えたら
        {
            number = 0; // 0に戻す
        }
        numberText.text = number.ToString(); //テキストの数値を変える
    }
}

パスワードギミックの作成で勉強したことのまとめ

3D脱出ゲームの作り方その12
「パスワードギミックの作成」で
勉強した内容についてのまとめです。

パスワードギミックの作成を
 するには、まずパスワードパネルと
 ボタンの作成をします。

次にボタンの数字を変更するための
 C#スクリプトと、

 正解の数字を判定するための
 C#スクリプトを作って
 それぞれコードを書きます。

そしてパスワードボタンの
 設定などを行ってボタンを押すと
 数字が変わるようにします。

最後に、ボタンの数字が
 正解の数字と同じとなった時に
 ログが表示されるか確認します。

今回の内容を実践してPlayボタンで
実行した後、

パスワードの数字を正解の1234に
合わせると「クリア」というログが
表示されます。

以上で「パスワードギミックの作成」
の目標は達成です!

スポンサーリンク

-Unityで3D脱出ゲーム