入力フィールド(InputField)を使えば、ゲーム画面で入力をすることができます。
かんたんなパスワード機能を実装しましょう。
InputFieldに「1234」と入力してEnterキーを押すと、Cubeが消える仕組みをつくってみます。
関連記事:
パスワード付きドアの作成
入力テキストを順番に配列に入れる
オブジェクトをクリックすると入力フィールド表示
InputFieldを使った入力エリア
まずはパスワードによって非表示にしたいオブジェクトを作成しましょう。
ここではCubeを作成しました。
続いて、UIから入力フィールドを作成します。
InputFieldを、Cubeの下に配置します。
ゲームビューではこのように見えています。
空のオブジェクトを作成します。
Password.csを作成し、GameObject(空のオブジェクト)に追加します。
Password.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Password : MonoBehaviour { [SerializeField] GameObject cube; [SerializeField] GameObject fieldObj; private InputField inputField; void Start() { fieldObj = GameObject.Find("InputField"); inputField = fieldObj.GetComponent<InputField> (); cube = GameObject.Find("Cube"); } public void InputText() { if (inputField.text == "1234") { cube.SetActive(false); } } } |
UIを扱うため、4行目 using UnityEngine.UI; を忘れずに書いておきましょう。
続いて、InputFieldオブジェクトの設定を、以下の手順で行います。
void InputText()を、入力フィールド側から実行できるようにします。
ゲームプレイして、正解のパスワード1234を入力し、Enterキーを押してみましょう。
Cubeが非表示になれば、OKです。
試しに、間違ったパスワードも入力して、表示を確認しておきましょう。
InputFieldに入れた情報を取得し、正解の文字と比較するしくみを作っています。