Unityで3D脱出ゲーム

Unity 3D脱出ゲームの作り方その13:パスワードクリアの実装をする方法

2020年12月17日

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

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

3D脱出ゲームの作り方

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

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

パスワードクリアの実装をする方法

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

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

【Unity3D】脱出ゲームの作り方 # 13パスワードクリアの実装

今回使用する宝箱の素材はこちらです。

宝箱の素材リンク

Udemyの場合は

セクション7の61
「宝箱のOpen」

セクション7の62
「ギミッククリア時の宝箱のOpen」

の内容です。

スポンサーリンク

この動画で勉強すること

▶︎パスワードギミックをクリアした時の処理を作成する。

目標1

パスワードクリア時に開ける宝箱オブジェクトを用意する。

=>宝箱の素材をダウンロードしてインポートする(Chest)

=>Chestを画面に配置して、プレハブ化を解除する。

=>ChestにAnimationコンポーネントをつける。

目標2

宝箱が開くアニメーションを動かす処理を作る。

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

=>宝箱を開ける関数を作成する。

=>UnityエディタでChestのAnimation設定を行う。

目標3

パスワードをクリアした時に宝箱を開ける処理を作る。

=>Passwardスクリプトの編集をする。

=>UnityEventの設定をする。

Chestスクリプトのコード

パスワードクリアの実装を
行うために作成したChestの
コードは以下となります。

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

public class Chest : MonoBehaviour
{
    public void OPen()
    {
        GetComponent<Animation>().Play();
    }
}

Passwardスクリプトのコード

パスワードをクリアした時に
宝箱を開ける処理を実装するために
編集したPasswardスクリプトの
コードは以下となります。

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

public class Passward : MonoBehaviour
{

    // 正解すると、外部の関数を実行する(UnityEvent)
    public UnityEvent ClearEvent;

    // 正解の数値
    [SerializeField] int[] correctNumbers = default;

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

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


    //クリアした時に実行する関数
    public void CheckClear()
    {
        if(IsClear() == true)
        {
            Debug.Log("クリア");
            ClearEvent.Invoke(); //クリアイベントを発動する
        }
    }


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

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

パスワードクリアの実装で勉強したことのまとめ

3D脱出ゲームの作り方その13
「パスワードクリアの実装」で
勉強した内容についてのまとめです。

パスワードクリアの処理を実装
 するには、まずクリアした時に
 開くオブジェクト(宝箱など)を用意します。
 

次に宝箱が開くアニメーションを
 設定するためにC#スクリプトや、
 Animationなどの用意をします。

そしてパスワードをクリアした時に
 宝箱が開くアニメーションを実行
 するようにスクリプトを編集し、
 Unity Eventなどを設定します。

今回の内容を実践してPlayボタンで
実行します。

パスワードの数字を正解の1234に
合わせると宝箱が開くようになりました。

パスワードをクリアした時の画像

以上で「パスワードクリアの実装」
の目標は達成です!

スポンサーリンク

-Unityで3D脱出ゲーム