Unity 2022.2.11での動作
色々できることが増えている。
- WebCamTexture使用可能
- Input.gyro.attitudeなど使用可能
モバイルでソフトウェアキーボードが表示されない
-> Unity 2022.1からInputFieldでソフトウェアキーボードが表示されるようになっています。
とはいえ、日本語を表示しようとすると日本語を埋め込むしか無いため、ちょっと使い勝手悪い。jslibでhtmlとの連携で独自で実装するのが良いか?
EmbedIOでサーバーをつくってunityのwebGLを表示するとwarningがでる
HTTP Response Header "Content-Type" configured incorrectly on the server for file Build/APP_NAME.wasm , should be "application/wasm". Startup time performance will suffer.
APP_NAME.wasmのResponseHeaderが
Content-Tyoe: application/wasm; charset=utf-8
になっているために発生する。
EmbedIOのsrcからHttpListenerResponse.csを多少手を加え、Content-Tyoe: application/wasm
になるようにする。
.framework.js.gz のエラーが出る
Unable to parse Build/APP_NAME.framework.js.gz! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: gzip" present. Check browser Console and Devtools Network tab to debug.
サーバーの設定で解決できるようだが、
Unity側で対応するのであれば、PlayerSettingのDecompression Fallback
を有効に
または、Compression Format
をDisable
に設定する
Decompression Fallback の方がファイル容量は少なくなる。
センサー値の取得
2021.1あたりからスマホWebGLでもInput.gyro.attitude
などが取得できるようになっている。要httpsサーバー。
Input.gyro.enabled = true;
を実行すると取得許可のダイアログが表示される。
Unity - Manual: Input in WebGL
locationは現時点では未サポート?のためjslibを作成し取得を行う。
スマホのChromeで検証を行う方法
参考
HTTPレスポンスヘッダの確認方法
Chrome for iOSにWebサイトデバッグツールが追加 | ソフトアンテナ
- Chrome を起動し、キーボードの[F12]キーを押して「デベロッパーツール」を表示する。
- [Network]タブを選択した後、適当なサイトにアクセスする。
- ページのリソースが一覧表示されると、Name、Status、Type などの項目が表示され、その項目上で右クリックするとコンテキストメニューが表示される
- ヘッダ情報は、Name から見たいものを選択し、右側に表示されたウィンドウの[Headers]タブを見る。