inputFieldのTMP版をスクリプトで使う方法。


最終的にはこんな感じになる。

テキストメッシュプロで日本語が使える設定などは各自で済ませておいてください。
それについては参考になるようなサイトを貼っておきます↓
TextMeshProで日本語フォントを使用する【Unity】

では早速始めにCreate→UI→InputField - TextMeshProを選択。
その後空のゲームオブジェクトを作る。

次に新しくスクリプトを作る。
スクリプトの名前はなんでもよし。
スクリプトを作成したら

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

のusing〜と書いてあるところに

using TMPro;

を追加する。

その後「TMP_InputField」型の変数を宣言。↓のように書く。
ここでは変数の名前を「_inputField」としている。

public class Textscript : MonoBehaviour
{

    TMP_InputField _inputField;

    void Start()
    {

その後Startの中でInputField (TMP)のゲームオブジェクトを探し、そこに「TMP_InputField」をGetComponentする。


    void Start()
    {
        _inputField = GameObject.Find("InputField (TMP)").GetComponent<TMP_InputField>();


    }

その後「public」で「InputName」という関数を作ります。
↓関数の中身も含めこんな感じです。

    public void InputName()
    {
        string name = _inputField.text;
        Debug.Log(name);

        _inputField.text = "";
    }

中身の説明としてstring型のnameという変数に、先ほど作った「TMP_InputField」型の「_inputField」という変数の中のtextを入れる。
そしてDebug.Log(name)でコンソールに出力。
という感じ。
ここまでのスクリプトの全体を貼っておきます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class Textscript : MonoBehaviour
{
    TMP_InputField _inputField;

    void Start()
    {
        _inputField = GameObject.Find("InputField (TMP)").GetComponent<TMP_InputField>();
    }

    void Update()
    {

    }

    public void InputName()
    {
        string name = _inputField.text;
        Debug.Log(name);
    }

}

スクリプトはここまでで、作り終わったら先ほど作った空のゲームオブジェクトにこのスクリプトを貼っつける。

そしたら「InputField (TMP)」のインスペクタービューの「On End Edit(String)」の「+」を押し、「None」の部分にスクリプトがついている空のゲームオブジェクトをドラッグ。
右に色々選択できるところがあるので、そこで先ほど作ったスクリプトの名前を探し、その中に先ほど作った関数「InputName」があるのでそれを選択。
そうするとこうなる↓。

以上。
一番上のGIF画像みたいに入力した文字がコンソールに出力されるはず。