ユニティ5.4
Unity 側ですべての 3D コンテンツを処理する Unity WebGL アプリケーション (ゲームではない) を構築し、すべての UI を HTML/CSS/JS を使用して構築します。デフォルトでは、WebGLInput.captureAllKeyboardInput は true に設定されています。これにより、キーボード (テキスト) 入力を必要とする入力フィールドが壊れます。これは、入力フィールドに移動するのではなく、キーボード コントロールが Unity によって自動的に消費されるためです。やっている
#if !UNITY_EDITOR && UNITY_WEBGL
WebGLInput.captureAllKeyboardInput = false;
#endif
入力フィールドの問題を修正しますが、要素がフォーカスされた後でも unity がすべてのキーボード入力を無視するようにしますが、追加します
tabindex="1"
HTML 入力フィールドでのキーボード入力がフォーカス時に機能し、Unity WebGL アプリ内のキーボード コントロールがフォーカス時にも機能するように修正します。(これはすべてドキュメントごとです: https://docs.unity3d.com/ScriptReference/WebGLInput-captureAllKeyboardInput.html )。それで、すべてうまくいっています。
ただし、Unity WebGL アプリケーションは、マウス (キーボードではない) コントロールを使用する一部の入力フィールドで依然として問題を引き起こしています。つまり、input type="range" フィールド (HTML5 スライダー) と input type="number (キーボードを使用して数字を入力することはできますが、マウスを上下にクリックすることはできません) で気付きました。
これを修正するための回避策はありますか? 要素が最初にクリック/フォーカスされない限り、Unity WebGL キャンバスがすべてのマウス入力を自動的に取得しないようにする必要があります (キーボード コントロールの動作と同じように)。これを修正するために Unity 側で何か変更することはありますか? それとも、すべての入力を処理し、Unity シーンまたは HTML UI のどちらを対象としているかを判断するために、カスタム JavaScript を作成する必要がありますか?