facebook twitter hatena line email

Unity/UIInputField

提供: 初心者エンジニアの簡易メモ
2019年3月24日 (日) 02:16時点におけるAdmin (トーク | 投稿記録)による版 (数字のみに限定する)

移動: 案内検索

入力欄に文字列を入れる

GameObject objtext = GameObject.Find ("Canvas/InputField");
objtext.GetComponent<InputField> ().text = name;

入力欄に文字列を取得

GameObject objtext = GameObject.Find ("Canvas/InputField");
Debug.Log(objtext.GetComponent<InputField> ().text);

or

GameObject objtext = GameObject.Find ("Canvas/InputField/Text");
Debug.Log(objtext.GetComponent<Text> ().text);

数字のみに限定する

GameObject objtext = GameObject.Find("Canvas/InputField");
objtext.GetComponent<InputField>().contentType = InputField.ContentType.IntegerNumber;

アルファベットのみに限定

objtext.GetComponent<InputField>().contentType = InputField.ContentType.Alphanumeric;

InputFieldに日本語入力させる

LineTypeをMulti Line Submitへ

Unity2017.xでandroidでInputFieldに日本語入力させる

https://qiita.com/Gok/items/35329c717203e86774f0

InputFieldの下のTextに参考pageのコードをアタッチする

入力補助非表示機能

Hide Mobile Input
モバイル端末でスクリーンキーボードにアタッチされる標準の入力フィールドを非表示にします。iOS のみで有効。

とあるがiPhoneXSで表示された・・・。他のiphoneでは試してない。

入力変更・確定があった時のイベント

// 入力が確定した時
InputField input = GameObject.Find("/Canvas/InputField").GetComponent<InputField>();
input.onEndEdit.AddListener(delegate {
           GameObject.Find("/Canvas/CheckText").GetComponent<Text>().text = "onEndEdit";
});
// 文字の変更があった時
input.onValueChanged.AddListener(delegate {
           GameObject.Find("/Canvas/CheckText").GetComponent<Text>().text = "onValueChanged";
});

入力変更・確定があった時のイベント(別メソッドで実行)

void Start() {
    InputField input = GameObject.Find("/Canvas/InputField").GetComponent<InputField>();
    input.onValueChanged.AddListener(OnValueChanged);
}
void OnValueChanged(string value)
{
    Debug.Log(value);// 変更後の文字列
}

フォーカス移動

InputField inputnext = GameObject.Find("/Canvas/InputFieldNext").GetComponent<InputField>();
inputnext.ActivateInputField();

参考:https://gamefbb.com/%E3%80%90unity%E3%80%91inputfield%E3%81%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9%E3%81%99%E3%82%8B/

テキストを削除

InputField inputnext = GameObject.Find("/Canvas/InputFieldNext").GetComponent<InputField>();
inputnext.text = "";

参考

InputField公式:https://docs.unity3d.com/ja/530/Manual/script-InputField.html