【Unity入門】InputFieldで入力された文字列を取得してみよう!

スコア画面やタイトル画面で、名前をなどを入力したいことありますよね。

そんな時inputfieldを使うと簡単に実装できます。

この記事では、

・inputfieldとは
・inputfieldの実装方法

といった基本的なことから、

・inputfieldの重要なパラメーターの解説
・シーンの切り替え方法

といった少し応用的なことまで、わかりやすく解説します。

inputfieldとは?

inputfieldとは入力された文字を取得できるオブジェクトのことです。

取得された文字は画面に表示させたりなど、様々な用途で使えます。

inputfieldの構成は、inputfieldオブジェクトがあり、その子要素としてTextオブジェクトPlaceholderオブジェクトがあります。

Textオブジェクトは文字を入力する部分です。

ここに入力された文字を取得できます。

Placeholderオブジェクトは何も入力していない状態で、うっすらと表示されている文字のことです。

初期状態では「Enter text...」となっていますが、文字は変更できます。

inputfieldを実装してみよう!

下準備

今回はinputFieldに文字を入力してテキストに反映させてみましょう。

まずは inputfieldオブジェクトを作成します。

HierarchyビューのCreateを押し、UI、InputFieldを順に押していき選択します。

inputfieldオブジェクトを作成すると、それに伴ってCanvasが自動で作成されます。

このままでは日本語を入力することはできないので設定をします。

inputfieldオブジェクトを選択し、inspectorからLineTypeをMultiLineNewlineに変更してください。

この設定は忘れがちなので注意しましょう。

inputfieldオブジェクトを作り終えたらTextオブジェクト、スクリプト、空のオブジェクトを作りましょう。

空のオブジェクトにはスクリプトを結びつけてください。

レイアウトについては適宜設定しましょう。

スクリプトを記述

結びつけたスクリプトへは以下のように記入をしましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//追加する!
using UnityEngine.UI;

public class Test : MonoBehaviour {

  //オブジェクトと結びつける
  public InputField inputField;
  public Text text;

  void Start () {
    //Componentを扱えるようにする
             inputField = inputField.GetComponent<InputField> ();
      text = text.GetComponent<Text> ();

    }

    public void InputText(){
                //テキストにinputFieldの内容を反映
         text.text = inputField.text;

     }

}

public変数のinputFieldとtextにオブジェクトを指定しましょう。

それぞれのオブジェクトをドラッグ&ドロップすることでオブジェクトを指定できます。

inputFieldオブジェクトの「OnValueChanged」と「OnEndEdit」に関数 InputTextを指定します。

「OnValueChanged」と「OnEndEdit」について説明しておきましょう。

「OnValueChanged」は文字の変更があった時に、「OnEndEdit」は入力が確定した時に指定した関数が呼び出されます。

実行してみよう!

それでは実行してみましょう。

inputfieldに入力した文字がテキストに反映されていますね!

inputfieldをもっと使いこなそう!

inputfieldのよく使うプロパティについて説明します。

プロパティとはここの部分のことです。

Interactableにチェックが入っている場合は、inputfieldが使え、チェックが外れると使えなくなります。

CharacterLimitは文字数の制限ができます。0となっている場合は無制限です。

ContentTypeは文字の入力方式の指定です。数字しか入力できないようにしたり、文字を入力すると「*」で隠してくれたりします。

LineTypeは先ほど日本語が入力できるように変更した部分ですね。改行できるかを設定します。

よく使うプロパティはこのぐらいですかね。

他に使いたいものがあれば、必要に応じて調べてみてください。

[応用]シーンの切り替え方!

ゲーム開始時などに名前入力させたいことがありますよね。

その場合は別シーンで用意しておくと簡単に実装できます。

画面遷移の方法については下記のリンクを参照してください。

【Unity入門】超簡単!別のシーンへ切り替える方法
更新日 : 2018年12月18日

まとめ

いかがでしたか?
今回はinputfieldについて解説してきました。

ユーザーが入力した値を簡単に取得できますので、ぜひ使いこなしてみてください!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

sato

sato

学生時代を含めると、かれこれ10年以上プログラマーとして過ごしています。
様々な言語や環境、プロジェクトに関わってきましたので、より実践的な記事をみなさんにお届きるよう情報発信していきます!