UnityでInputFieldのTextとCharを文字列比較したい
◆UnityでInputFieldのTextとCharを文字列比較したい
【目的】
脱出ゲームにありがちな
ユーザに鍵となる文字列を直接入力してもらい
スクリプトで正解の鍵と文字列比較して答え合わせする
っていうのをつくりたい。
ダイヤルでアルファベット選択するほうがよく見るのだけど
練習も兼ねているのでInputFieldを使う方でチャレンジしたい。
◆手順
【完成イメージ】
「PASSWORD?」の部分をクリック(タップ)すると文字入力を受け付けます。 「ENTER」の部分をクリック(タップ)すると、答え合わせをします。
【C#スクリプト(初心者なので微妙な可能性あり)】
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class EscapeGameManager : MonoBehaviour { public GameObject buttonMessagePC; //メッセージ表示用ボタン public GameObject buttonMessageTextPC; //メッセージテキスト InputField inputField; //パスワード入力ボックス public const string TruePASS = "UNITY"; //正しいパスワード void Start () { inputField = GameObject.Find("InputField").GetComponent<InputField>(); } // Update is called once per frame void Update () { } public void PushButtonEnter() { string pass = inputField.text; if (pass.ToLower() == TruePASS.ToLower()) { DisplayMessagePC("正解!▼"); } else { DisplayMessagePC("ブッブー!▼"); } } //PCメッセージを表示 void DisplayMessagePC(string message) { buttonMessagePC.SetActive(true); buttonMessageTextPC.GetComponent<Text>().text = message; } //Back(PC)を押した public void PushButtonBackfromPC() { buttonMessagePC.SetActive(false); //メッセージを消す inputField.text = ""; //InputFieldの文字を消す }
Unity側は普通にインスペクタの変数に適用して メソッドを割り当てるだけです。
【ぼやき】
初心者すぎて 、
・InputFieldに入力された文字列を取ってくる方法がわからん
・InputFieldから取ってきた文字列がStringじゃないけど型変換がわからん
・代入用のString型変数宣言はここに書いていいのか…?
・大文字小文字無視はCSでどう書くんだ……
と順序を追って全部調べる羽目になりました。
先人ブロガーの皆様に多謝。