質問: Unityオンラインゲーム作成【Chapter2】ログイン画面作成 のサイトの > > **名前の入力欄のUIを作成** > > Scene Launcherを開きます。 > > Unityのメニューの'GameObject/UI/Input Field'を使用して名前入力欄を作成し、NameInputFieldと名付けます。 > > 位置をRect Transformの値を調節します。 > > NameInputFieldの子オブジェクトであるPlaceholderの値を"名前を入力"等に編集します。 > > 新しいC#のスクリプト NameInputFieldScriptを作成し、以下のようにスクリプトを編集します。 > > NameInputFieldを選択して、InputFieldコンポーネント内のOn Value Changed ()の小さい'+'をクリックし、新規エントリーを作成します。 > > Hierarchyから作成したエントリのフィールドに、NameInputFieldをドラッグします > > ドロップダウンメニューからNameInputFieldScript.SetPlayerNameを選択します。 > > これにより入力欄の文字列が変更するたびにSetPlayerNameメソッドが呼び出されるようになります。 > > Ctrl+Sで保存します。 > > > の項目のHierarchyから作成したエントリのフィールドに、NameInputFieldをドラッグしますの部分がよくわかりません。 参考サイトですと ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2eb6a12d309faabd0f67376a59e60d8b.png) のように直接bottonにスプリクトを付けているように見えます。 ですが実際にやってみると ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a343b86153e87334dbb978be7f89b982.png) のようにNameInputFieldScript.SetPlayerNameがありません なので次に試したのが ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/720610f68d05a6580f62cb67d080115b.png) 実際にオブジェクトにスプリクトをアタッチしてから入れました、すると ちゃんとNameInputFieldScript.SetPlayerNameが表示されますが、横に文字列が入る箱ができてしまい、 ゲーム上でテキストを記入しても反応しません(inspectorのボックス内に文字を入れると適用されます) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/320ad69a221245c99630e37e6d538bef.png) なぜこのような現象が起こるのでしょうかよろしくお願いいたします。
回答: その場合は関数を選択する際に**Dynamic string**の方を使って下さい。 赤枠に同じ関数名が二つ有ると思いますが上の方を選択して下さい。 !イメージ説明 具体的に説明すると、 ・上の関数は**動的にInput Fieldの文字**を引数に取るのでInput Fieldに入力する度それがデバッグログに出ます。 ・下の関数は**文字列が入る箱に入力した文字**を引数に取るのでそこに予め入力しておいた文字がデバッグログに出ます。