スコア画面やタイトル画面で、名前をなどを入力したいことありますよね。
そんな時inputfieldを使うと簡単に実装できます。
この記事では、
・inputfieldとは
・inputfieldの実装方法
といった基本的なことから、
・inputfieldの重要なパラメーターの解説
・シーンの切り替え方法
といった少し応用的なことまで、わかりやすく解説します。
inputfieldとは?
inputfieldとは入力された文字を取得できるオブジェクトのことです。
取得された文字は画面に表示させたりなど、様々な用途で使えます。
inputfieldの構成は、inputfieldオブジェクトがあり、その子要素としてTextオブジェクトとPlaceholderオブジェクトがあります。
Textオブジェクトは文字を入力する部分です。ここに入力された文字を取得できます。
Placeholderオブジェクトは何も入力していない状態で、うっすらと表示されている文字のことです。初期状態では「Enter text...」となっていますが、文字は変更できます。
【なかなかエラーが解決できない…そんな悩みを解決します!】
登録無料で始められるプログラミングスクール「侍テラコヤ」
・回答率100%のQ&A掲示板でエラーを解決!
・現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!
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のよく使うプロパティについて説明します。
プロパティとはここの部分のことです。
よく使うプロパティはこのぐらいですかね。
他に使いたいものがあれば、必要に応じて調べてみてください。
【なかなかエラーが解決できない…そんな悩みを解決します!】
登録無料で始められるプログラミングスクール「侍テラコヤ」
・回答率100%のQ&A掲示板でエラーを解決!
・現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!
[応用]シーンの切り替え方!
ゲーム開始時などに名前入力させたいことがありますよね。
その場合は別シーンで用意しておくと簡単に実装できます。
画面遷移の方法については下記のリンクを参照してください。

まとめ
いかがでしたか?
今回はinputfieldについて解説してきました。
ユーザーが入力した値を簡単に取得できますので、ぜひ使いこなしてみてください!