2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

unityでの開発を進めていると、名前の入力などユーザーが指定した情報をシステムで使用したい場合があると思います。
今回はunityのInput Field機能を使用してそれを実現する方法を紹介したいと思います。

InputFieldとは

Input Fieldとは、unityのUIとして使用できるオブジェクトで、ユーザーが入力した文字を取得する機能がデフォルトでついています。
名前の入力やフォームの作成など多岐にわたって使用することが出来る機能となります。

出し方

HierarchyViewを右クリック、UI->Legacy->Input Fieldをクリックし、オブジェクトを出します。
スクリーンショット (41).png
オブジェクトが生成されるます、座標が気に入らない場合はInspectorRect Transformから任意の座標を指定してください。
スクリーンショット (42).png

現在ではTextMeshProの方が、スタイリングなどの観点から主流となっていますが、日本語フォントなどをインポートする必要があるため、今回はLegacyを使用します。

挙動

実行すると、クリックで選択して文字が打ち込めるようになることが確認できます。
スクリーンショット (43).png

ほかのオブジェクトやスクリプトに入力情報を渡す

今回はInput Fieldから名前の入力を行い、テキストオブジェクトに情報を渡して描画する処理を実例として挙げたいと思います。

手順1:Textオブジェクトを作成

HierarchyViewを右クリック、UI->Legacy->Textをクリックしてオブジェクトを作成して、InspectorViewで任意の位置や大きさに調整してください。
スクリーンショット (45).png

手順2:GameManagerを用意してスクリプトを作成

HierarchyViewを右クリック、CreateEmptyで空のオブジェクトを作成し、名称を設定(私はGameManagerとしました。)
今作成した空のオブジェクトを選択し、InspectorからAdd Component->New Scriptで名称を付け、Create and Addをクリックします。
スクリーンショット (47).png

手順3:スクリプトに記述

テキストエディタでファイルを開いてスクリプトを編集します。

GameManager.cs
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からスクリプトに、TextInputFieldのUIオブジェクトをアタッチします。
スクリーンショット (48).png
HierarchyからInputFieldを選択し、InspectorOn End Edit+ボタンをクリックし、GameManagerオブジェクトをアタッチ、スクリプトで記述した名前の入力が完了した際に呼ぶ関数を選択します(私のコードではNameInputComplete())
スクリーンショット (49).png
実行して、フィールドに文字の打ち込みを完了させることで、テキストが変更される処理が実装できたことをことを確認する。
スクリーンショット (50).png

総括

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?