キーボードオーバーレイを有効にする
更新日時: 2026/01/20
Meta Questヘッドセットでのテキスト入力には実際のBluetoothキーボードを使用できますが、VRアプリ内でシステムキーボードを操作することで、より没入感のある体験を実現できます。キーボードオーバーレイ機能を使用すると、システムキーボードを表示してテキストを入力できるため、独自のカスタムキーボード体験を開発する必要がなくなります。また、音声入力や多言語サポートなどの機能にアクセスすることもできます。

ハードウェアの要件
- 以下のいずれかのOSで動作する開発マシン。
Windows 10以降(64ビット)
macOS 10.10以降(x86またはARM)
ヘッドセットの要件
サポートされているMeta Questヘッドセット:
- Quest 3Sおよび3S Xbox Edition
ソフトウェア要件
- Unityエディター2022.3.15f1以降(6.1以降を推奨)
システムキーボードがオーバーレイとして表示されるよう設定すると、編集可能なUIテキストエレメントが入力フォーカスを受け取ったときに、システムキーボードが自動的に表示されます。アプリがキーボードを表示すると、OVRManager.InputFocusLostイベントがトリガーされて入力フォーカスがアプリから外れます。アプリがキーボードを閉じると、OVRManager.InputFocusAcquiredイベントがトリガーされて入力フォーカスを獲得します。
システムキーボードを有効にするには、Unityのプロジェクト設定を使うか、プログラムを使ってシステムキーボードを起動します。
キーボードオーバーレイプロジェクト設定を有効にするには、以下の手順に従います。
- フォーカス検知を有効にします。
- [Hierarchy (階層)]ビューで[OVRCameraRig]を選んで、[Inspector (インスペクター)]ビューで設定を開きます。
- [OVR Manager (OVRマネージャー)]の[Quest Features (Questの機能)]セクションで、[Require System Keyboard (システムキーボードが必要)]を選びます。
- フォーカス検知を有効にします。
TouchScreenKeyboardインスタンスを格納する変数と、キーボードが返す文字列を保持する変数を宣言します。
private TouchScreenKeyboard overlayKeyboard;
public static string inputText = "";
テキストUIエレメントがフォーカスを受け取ったら、TouchScreenKeyboard.Open()メソッドを呼び出してキーボードを起動します。メソッドを呼び出すとアプリから入力フォーカスが外れ、OVRManager.InputFocusLostイベントがトリガーされます。キーボードオーバーレイでサポートされている唯一のタイプであるTouchScreenKeyboardType.Defaultを、メソッドに渡します。
overlayKeyboard = TouchScreenKeyboard.Open("", TouchScreenKeyboardType.Default);
入力されたコンテンツを取得するには、TouchScreenKeyboard.textプロパティを呼び出してキーボードの入力フィールドに表示されたテキストを返し、それを変数に格納して他の箇所で使用します。
if (overlayKeyboard != null)
inputText = overlayKeyboard.text;
キーボードオーバーレイ機能をテストまたはプレビューするには、以下のようにします。
- キーボードオーバーレイ機能を実装したアプリを開きます。
編集可能なUIテキスト要素にカーソルを置き、システムのキーボードオーバーレイを確認します。
アプリでシステムキーボードオーバーレイを確認できます。