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に
合わせると「クリア」というログが
表示されます。
以上で「パスワードギミックの作成」
の目標は達成です!