メインコンテンツまでスキップ

コールバック

IwashiIME での入力完了時(OK押下時)に、特定の処理を実行するためのイベント設定について解説します。

イベントの設定方法​

KeyboardOpener コンポーネントには、入力完了時のコールバックイベントが用意されています。 他の uGUI コンポーネント(Button の OnClick など)と同様に、Inspector 上で UnityEvent<string> 形式で登録が可能です。

既存イベントの自動移行機能​

既存の InputField や TMP_InputField に設定済みのイベントは、手動で KeyboardOpener に移し替える必要はありません。

IwashiIME は、シーン再生時(またはビルド時)に、対象の InputField に設定されているイベントを検出し、自動的に KeyboardOpener のイベントとして取り込みます。

移行対象となるイベント​

コンポーネントの種類によって、移行されるイベントが異なります。

コンポーネント移行されるイベント備考
InputField (標準)OnSubmitOnEndEdit は移行されません。
TMP_InputFieldOnEndEdit
VRChat標準キーボードの仕様準拠について

IwashiIME のイベント移行ルールは、基本的に VRChat 標準キーボードの挙動に準拠 しています。

  • InputField (標準): VRChat 標準キーボードにおいても、入力完了時に実行されるのは OnSubmit であり、OnEndEdit は実行されません。本アセットもこの挙動に合わせているため、OnSubmit のみを使用します。

  • TMP_InputField: 現在、VRChat 側の不具合により、標準キーボードでは OnEndEdit が発火しない(入力完了イベントを受け取る手段がない)状態となっています。 IwashiIME では OnEndEdit をサポートしているためイベントは正常に動作しますが、標準キーボード利用時にはイベントが起きない 点にご注意ください。

イベントの実行順序​

移行されたイベントは、以下の順序で実行されます。

  1. KeyboardOpener に直接設定したイベント
  2. 元の InputField / TMP_InputField から移行されたイベント
ランタイムでの挙動について

この「移動」処理が行われるため、実行中(Play Mode)に InputField 側のイベント設定を見ると空になっていますが、これは 正常な挙動 です。 元々のイベントは KeyboardOpener 側に引き継がれて実行されますのでご安心ください。