UnityにおけるInput Fieldの「On End Edit ()」イベントの設定方法
この資料では、UnityのInput Field
コンポーネントにおいて、ユーザーがテキスト入力を確定した際に処理を実行する「On End Edit ()」イベントの設定方法を解説します。Input Field
は、フォームやゲームUIでユーザーの入力を受け取る重要なUI要素です。ここでは、インスペクターとスクリプトの両方を使用してイベントを設定する方法を紹介します。
1. Input Fieldの作成
- Unityエディタの
GameObject
メニューから、UI > Input Field
を選択します。 - シーンに
Input Field
が追加され、キャンバス上に表示されます。
2. スクリプトの作成
次に、テキスト入力確定時に呼び出される関数を含むスクリプトを作成します。
using UnityEngine;
public class InputFieldHandler : MonoBehaviour
{
// この関数がテキスト入力確定時に呼び出されます
public void OnInputEnd(string inputText)
{
Debug.Log("ユーザーが入力したテキスト: " + inputText);
}
}
OnInputEnd
関数は、ユーザーが入力したテキストを受け取り、その内容をコンソールに表示します。
スクリプトのアタッチ
このスクリプトを、Input Field
が存在するオブジェクトか、適当な別のゲームオブジェクトにアタッチします。Unityエディタ内でスクリプトをドラッグ&ドロップして、オブジェクトにアタッチします。
3. インスペクターでの「On End Edit ()」イベントの設定
Input Field
オブジェクトを選択し、インスペクターを開きます。- インスペクターの「Input Field (Script)」セクションに、「On End Edit ()」という項目があります。この項目が、ユーザーがテキストを入力し確定した際に発生するイベントです。
- 「On End Edit ()」の右側にあるプラスボタン(
+
)をクリックして、新しいイベントリスナーを追加します。 - 新しく追加されたリスナーの左側にあるオブジェクトフィールド(空欄)に、作成したスクリプトがアタッチされているオブジェクトをドラッグ&ドロップします。
- ドロップダウンメニューをクリックして、登録可能な関数のリストから
OnInputEnd (string)
関数を選択します。メニューに表示される形式は、<スクリプト名> -> <関数名 (引数の型)>
です。今回の場合は、InputFieldHandler -> OnInputEnd (String)
という形式で表示されます。
4. コードでイベントを登録する方法
イベントをインスペクターで設定するだけでなく、スクリプトを使ってプログラム的にイベントを登録することも可能です。次の例では、スクリプト内でInput Field
のonEndEdit
イベントにリスナーを追加しています。
スクリプト例:コードでイベントを登録
using UnityEngine;
using UnityEngine.UI; // InputFieldを使うために必要
public class InputFieldHandler : MonoBehaviour
{
public InputField inputField; // Input Fieldの参照を保持
void Start()
{
// コードでイベントハンドラを登録
inputField.onEndEdit.AddListener(OnInputEnd);
}
// ユーザーがテキストを入力確定した時に呼ばれる
void OnInputEnd(string inputText)
{
Debug.Log("ユーザーが入力したテキスト: " + inputText);
}
}
inputField.onEndEdit.AddListener(OnInputEnd)
は、OnInputEnd
関数をイベントリスナーとして追加しています。このリスナーは、ユーザーがテキスト入力を終了(確定)したときに呼び出されます。
コードでイベントを登録する手順
InputField
コンポーネントを持つゲームオブジェクト(Input Field
)を作成します。- 上記スクリプトをプロジェクトに作成し、
Input Field
にアタッチします。 Input Field
フィールドには、Unityエディタからインスペクターを通じて対応するInputField
コンポーネントをドラッグ&ドロップして割り当てます。- ゲームを実行すると、ユーザーがテキストを確定するたびに、
OnInputEnd
関数が呼び出されます。
5. 実行と動作確認
- ゲームを実行して、
Input Field
にテキストを入力します。 - テキストを入力し終えて、
Enter
キーを押すか、Input Field
のフォーカスが外れると、設定したOnInputEnd
関数が呼び出されます。 - 入力されたテキストがコンソールに出力されます。
ユーザーが入力したテキスト: こんにちは
6. イベントの動作概要
- On End Edit () イベント:
Input Field
において、ユーザーがテキスト入力を終了した際に発生するイベントです。終了のタイミングは、Enter
キーを押すか、フィールドからフォーカスが外れたときです。 - インスペクターでイベントを設定: Unityエディタのインスペクター上で簡単にイベントハンドラを設定できます。これにより、スクリプトを書くことなく、UIの操作に応じた処理を実行可能です。
- コードでのイベント登録: スクリプト内でプログラム的にイベントリスナーを追加することで、柔軟なイベント処理が可能です。
AddListener
メソッドを使用して、特定の処理を追加できます。
まとめ
この技術資料では、Input Field
のOn End Edit ()
イベントをインスペクターおよびスクリプトで設定する方法を紹介しました。イベントをコードで管理することで、インスペクターだけでは実現できない柔軟な制御が可能になります。Unityでのユーザー入力の処理を簡単に実装できるため、インタラクティブなゲームやアプリケーションを作成する際に役立ちます。
ディスカッション
コメント一覧
まだ、コメントがありません