Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

InputFieldにテキストを設定する際の注意点

Create-UI-InputFieldでInputFieldを作成すると、'InputField'オブジェクトの下に、PlaceholderとTextという名前の2つの'Text'オブジェクトが生成される。

f:id:yasuda0404:20150810171140p:plain

Placeholder, Textの2つの'Text'オブジェクトは、作成時点で親のInputFieldオブジェクトにひもづけされている。

f:id:yasuda0404:20150810171412p:plain

テキストの取得

スクリプトでInputFieldに入力されたテキストを取得する際は、

public InputField inputField;  //InputFieldオブジェクトをアサイン
string text =  inputField.text

としてもよいし、

public Text inputText;  //InputFieldの下のTextオブジェクトをアサイン
string text =  inputText.text

としてもよい。

テキストの設定

逆にInputFieldにテキストを設定したい場合は、

public InputField inputField;  //InputFieldオブジェクト
inputField.text = "Default Input";  //InputFieldにテキストが設定される

はOKだが、

public Text inputText;  //InputFieldの下のTextオブジェクト
inputText.text = "Default Input";  //!!! InputFieldのテキストに変化はない!!

は機能しない。エラーにはならないが、表示は変更されないので注意。