facebook twitter hatena line email

「Unity/UIInputField」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(フォーカス(focus)移動)
(入力欄に文字列を取得)
行5: 行5:
 
==入力欄に文字列を取得==
 
==入力欄に文字列を取得==
 
  GameObject objtext = GameObject.Find ("Canvas/InputField");
 
  GameObject objtext = GameObject.Find ("Canvas/InputField");
  Debug.Log(objtext.GetComponent<InputField> ().text);
+
  Debug.Log(objtext.GetComponent<InputField>().text);
 
or
 
or
 
  GameObject objtext = GameObject.Find ("Canvas/InputField/Text");
 
  GameObject objtext = GameObject.Find ("Canvas/InputField/Text");
  Debug.Log(objtext.GetComponent<Text> ().text);
+
  Debug.Log(objtext.GetComponent<Text>().text);
  
 
==数字のみに限定する==
 
==数字のみに限定する==

2021年1月11日 (月) 01:21時点における版

入力欄に文字列を入れる

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);// 変更後の文字列
}

フォーカスが外れた時

textField.onEndEdit.AddListener(delegate {
    Debug.Log(textField.text);
});

フォーカス(focus)移動

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/

フォーカスを外す

適当なボタンにフォーカスすれば、テキスト側のフォーカスは、外れる。

GameObject.Find("HogeButton").GetComponent<Button>().Select();

テキストを削除

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

参考

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