この記事でのバージョン
Unity 2022.3.21f1
はじめに
UnityのuGUIではInputFieldというコンポーネントを使う事で、
文字入力出来るUIを簡単に実装出来ます。
今回はそのInputFieldをプログラムから選択する(文字入力を有効にする)方法の紹介です!
なお、「タッチ(マウス)操作とゲームパッド操作に両方に対応したい」
「コントローラーで決定した時も入力を開始したい」みたいな時に役立つかと思います。
uGUIのInputFieldをプログラムから選択する方法
早速ですが、InputFieldをプログラムから選択するにはActivateInputField、
//選択する(文字入力を有効にする)
_inputField.ActivateInputField();
それを解除するにはDeactivateInputFieldを使います。ただし、DeactivateInputFieldだけだと
選択は解除されてるようにみえても入力自体はまだ出来てしまう状態なので、
同時にEventSystem.current.SetSelectedGameObjectにnullを設定する必要もあります。
using UnityEngine.EventSystems;//EventSystem使うのに必要
//選択を解除する(文字入力を無効にする) _inputField.DeactivateInputField(); EventSystem.current.SetSelectedGameObject(null);