Unity:WebGLでビルドするとHTMLのInputでキーボード入力ができない問題

最終更新日

Comments: 0

はじめに

Unity で WebGL を出力するとブラウザで実行可能な出力が可能になります。上記のWebGL は HTML5 の Canvas 要素で実装されているのですが、このHTML内に以下のようなテキスト入力欄を同時に表示すると、ここの入力ができなくなる問題があるようです。
<input type="text" name="name" size="30">

参考

以下、「強火で進め」さんのブログで紹介されていた方法にて対応したいと思います。
[Unity] WebGL ビルドをした時に HTML 内の Input タグの入力が受け付けない問題の対処方法Add Star

ソースコード

「WebGLInput.captureAllKeyboardInput = false」にする事により、HTML内でのキーボード入力が可能となるようです。
WebGLプラットフォームでのコンパイル時のみを有効にするために #if ~ #endif を使いましょう。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HtmlInputControl : MonoBehaviour
{
    void Start()
    {
#if !UNITY_EDITOR && UNITY_WEBGL
        WebGLInput.captureAllKeyboardInput = false;
#endif
    }
}

実行結果

falseの場合

WebGLInput.captureAllKeyboardInput = false;
デモページにて確認してみてください。

trueの場合

WebGLInput.captureAllKeyboardInput = true;
デモページにて確認してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする