この記事では、UnityのInputFieldコンポーネントを用いてテキスト入力を実装する基本的な方法について、初心者の方にもわかりやすく説明します。
UnityのInputFieldとは
UnityのInputFieldは、ユーザーがテキストを入力できるUI要素です。フォームやチャットウィンドウなど、ユーザーの入力が必要な場面で幅広く使われます。InputFieldを使うことで、キーボードやスクリーンキーボードからの入力を簡単に受け取れます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_212732.png)
InputFieldの設定
InputFieldを設定するには、まずUnityエディタで新しいUI要素としてInputFieldを追加します。「Hierarchy」ウィンドウで右クリックし、「UI」→「InputField」を選択することで簡単に行えます。
設定可能なオプションは多いですが、基本となるのは以下の項目です:
- Text:現在のテキストを表示します。
- Placeholder:入力欄が空のときに表示されるガイドテキストです。
- Character Limit:入力できる文字数の上限を設定します。
これらのオプションを適切に設定することで、入力欄をカスタマイズできます。
テキスト入力の処理
ユーザーからの入力をプログラムで扱うためには、InputFieldのイベントを利用します。最も一般的なのは、「On Value Changed」イベントです。このイベントはテキストが変更されるたびに発生し、新しいテキスト値を取得できます。
以下は、InputFieldのテキストが変更されたときにコンソールに表示する簡単な例です:
public void OnInputFieldChanged(string newText)
{
Debug.Log("新しいテキスト: " + newText);
}
この関数をInputFieldの「On Value Changed」イベントにアタッチすることで、テキストが変更されるたびに新しいテキストがコンソールに表示されます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_213224.png)
ボタンを押して入力したテキストを表示させる
ステップ1: ボタンの設置
UI要素としてボタンを追加します。これも「Hierarchy」ウィンドウで右クリックし、「UI」→「Button」を選択して追加します。ボタンも適切に配置し、必要に応じてラベルを設定します。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_213559.png)
ステップ2: テキストオブジェクトの追加
入力されたテキストを表示するために、テキストオブジェクトを追加します。これは「Hierarchy」ウィンドウで右クリックし、「UI」→「Text」を選択して追加します。このテキストオブジェクトは、後でスクリプトから参照されるので、わかりやすい名前を付けておきましょう。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_213753.png)
ステップ3: スクリプトの作成
Unityでは、C#スクリプトを使用してUIの動作を制御します。新しいスクリプトを作成し、以下のようなコードを記述します:
using UnityEngine;
using UnityEngine.UI;
public class DisplayText : MonoBehaviour
{
public InputField inputField;
public Text displayText;
public void DisplayInputText()
{
displayText.text = inputField.text;
}
}
このスクリプトでは、InputFieldとTextオブジェクトを公開変数として持ち、DisplayInputText メソッドでInputFieldからテキストを取得し、Textオブジェクトにそのテキストを設定しています。
ステップ5: スクリプトとUI要素の紐付け
スクリプトを作成したら、それをシーン内の空のGameObjectにアタッチします。その後、Inspectorウィンドウ内でInputFieldとTextオブジェクトをドラッグ&ドロップして、スクリプトの公開変数に割り当てます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_214435.png)
ステップ6: ボタンのイベント設定
最後に、ボタンにクリックイベントを設定します。ボタンを選択し、Inspectorウィンドウの「Button」コンポーネント内にある「On Click ()」セクションを見ます。そこに、先ほどのスクリプトを持つGameObjectをドラッグ&ドロップし、「No Function」から「DisplayText」→「DisplayInputText」を選択します。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_214513.png)
InputTextに入力したテキストがボタンを押すと表示されます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-26_214721.png)
以上で、「ボタンを押してInputFieldに入力したテキストを表示させる」という機能の実装は完了です。
まとめ
UnityのInputFieldは、テキスト入力を必要とするアプリケーションやゲームにとって非常に便利なツールです。基本的な設定から、入力のバリデーションまで、この記事がUnityのInputFieldを使った開発の入門として役立つことを願っています。Unityでの開発は、こうした基本的なコンポーネントから始めることで、より複雑な機能へとステップアップしていけます。ぜひ、この知識を活用して素晴らしいアプリケーションを作ってみてください。