unityでの開発を進めていると、名前の入力などユーザーが指定した情報をシステムで使用したい場合があると思います。
今回はunityのInput Field機能を使用してそれを実現する方法を紹介したいと思います。
InputFieldとは
Input Fieldとは、unityのUIとして使用できるオブジェクトで、ユーザーが入力した文字を取得する機能がデフォルトでついています。
名前の入力やフォームの作成など多岐にわたって使用することが出来る機能となります。
出し方
HierarchyViewを右クリック、UI->Legacy->Input Fieldをクリックし、オブジェクトを出します。

オブジェクトが生成されるます、座標が気に入らない場合はInspectorのRect Transformから任意の座標を指定してください。

現在ではTextMeshProの方が、スタイリングなどの観点から主流となっていますが、日本語フォントなどをインポートする必要があるため、今回はLegacyを使用します。
挙動
実行すると、クリックで選択して文字が打ち込めるようになることが確認できます。

ほかのオブジェクトやスクリプトに入力情報を渡す
今回はInput Fieldから名前の入力を行い、テキストオブジェクトに情報を渡して描画する処理を実例として挙げたいと思います。
手順1:Textオブジェクトを作成
HierarchyViewを右クリック、UI->Legacy->Textをクリックしてオブジェクトを作成して、InspectorViewで任意の位置や大きさに調整してください。

手順2:GameManagerを用意してスクリプトを作成
HierarchyViewを右クリック、CreateEmptyで空のオブジェクトを作成し、名称を設定(私はGameManagerとしました。)
今作成した空のオブジェクトを選択し、InspectorからAdd Component->New Scriptで名称を付け、Create and Addをクリックします。

手順3:スクリプトに記述
テキストエディタでファイルを開いてスクリプトを編集します。
using UnityEngine;
using UnityEngine.UI;//UI機能を記述するのに必要
public class GameManager : MonoBehaviour
{
[SerializeField]private Text _nameText;//名前を表示するテキスト
[SerializeField]private InputField _nameInputField;//名前入力フィールド
//名前の入力が完了した際に呼ぶ関数
public void NameInputComplete()
{
_nameText.text = _nameInputField.text;//入力情報を代入
}
}
unityの画面に戻り、HierarchyからGameManagerオブジェクトを選択して、Inspectorからスクリプトに、TextとInputFieldのUIオブジェクトをアタッチします。

HierarchyからInputFieldを選択し、InspectorでOn End Editの+ボタンをクリックし、GameManagerオブジェクトをアタッチ、スクリプトで記述した名前の入力が完了した際に呼ぶ関数を選択します(私のコードではNameInputComplete())

実行して、フィールドに文字の打ち込みを完了させることで、テキストが変更される処理が実装できたことをことを確認する。

総括
- ユーザーの入力情報を取得したい場合はUIの
InputFieldを使用することで、容易に実装が行える。 -
InputFieldのtextフィールドを使用することで、ユーザーが入力した情報を取得できる。 -
InputFieldのOn End Editを設定することで、入力完了時に関数を呼び出すことが可能となる。