見出し画像

iphone等のモバイルデバイスでUnityWebGLが動くと思ったら動かなかった


現在ふりーむ上で公開しているブラウザゲーム(WebGL)


制作環境:Win10 + Unity 2019.4.22f1 (64-bit)

Unityで制作し、WebGLビルドし、モバイル向けの解像度(9:16)で制作した。
外部サーバー(Heroku)を使ってテストしたところモバイル上でもPC上でも動作確認済み。

しかし、基本的にUnityのWebGLはモバイルデバイスでは非サポート

引用:
Unity WebGL は、主要なデスクトップブラウザーをある程度サポートしています。しかし、サポートレベルや予想されるパフォーマンスは、ブラウザーごとに異なります。 Unity WebGL コンテンツに関係する各ブラウザー機能の概要と、どのブラウザーがサポートしているかについては、下の表を参照してください。Unity WebGL コンテンツは現在モバイル端末ではサポートされていないことに注意してください。一部の機器、特にハイエンドなものでは動く場合もありますが、現在の大抵の端末は性能不足で Unity WebGL を十分に動かすだけのメモリがありません。そのため、モバイルブラウザー上でコンテンツを起動しようとすると、 Unity WebGL によって警告メッセージが表示される場合があります (この機能は必要に応じて無効にすることもできます)。


つまりメモリをたくさん積んでいる最近のデバイスであれば十分に動作する可能性がある。と解釈できる。実際、外部サーバーのHeroku上でDeployしたものはモバイル(iphone11+iOS14.4.2のSafari)上でも下記Warningは出るがゲームは動いていた。

Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway.

Warningを消すにはBuild/UnityLoader.jsの中の下記文字列

UnityLoader.SystemInfo.hasWebGL?UnityLoader.SystemInfo.mobile?e.popup("Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway.",[{text:"OK",callback:t}]):["Edge","Firefox","Chrome","Safari"].indexOf(UnityLoader.SystemInfo.browser)==-1?e.popup("Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway.",[{text:"OK",callback:t}]):t():e.popup("Your browser does not support WebGL",[{text:"OK",callback:r}])

t();

に置換。

Warningが出てもそのままOKでプレイ可能

UnityのWebGLビルドHeroku上のDeployについては

WebGLロードが90%で止まってしまう対策については

ふりーむ上での動作

しかし、ふりーむ上でモバイルデバイス(iphone11+iOS14.4.2)のブラウザ(Safari&Chrome)でプレイすると下記エラーが発生

An error occured running the Unity content on this page. See your browser's JavaScript console for more info.
The error was:
SecurityError: The operation is insecure.

エラー内容からセキュリティ的なNG?

調べるとCookieを許可していないあたりが原因かも?と思い
Safari(iOS14.4.2)の設定を確認、一度セキュリティをガバガバにしてみる。

プライバシーとセキュリティの項目で
サイト越えトラッキングを防ぐ
すべてのCookieをブロック
詐欺Webサイトの警告
ApplePayの確認

をすべてOFF

これでサードパーティCookieも保存できるようになったと思われる。
履歴とWebサイトデータを全消去して再Try。
しかし同様のエラーが出てだめっぽい。

というところで、調査は一旦終了。

Unityがモバイル+WebGL非サポートであること。
サーバーとの相性の可能性
Uploadに審査が必要なサーバーで試行錯誤は厳しい
などの理由から、モバイル+WebGLの調査はここまで

UnityRoomではどうなるのか、別途確認する予定。(まだ垢無し)

参考リンク

http://flagfrag.hatenablog.com/entry/2016/10/10/041735

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
何かしら作る系兼業エンジニア。 裏方として100人以上のクリエイターと関わりコンテンツを制作してきました。 ひそかにゲーム制作をしています。Arcanite Links: https://arcanite-links.wixsite.com/game Noteはその備忘録。