Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@kohei-108

macOS Big Sur にてUnityLoader.js が原因でWebGLが動作しないとき

Unityで作られたファイルがブラウザで動作しない

Unity WebGLをブラウザで開こうとしたところ、動作しなかった。最初は、WebGLがChromeやSafariでアクティベートされていないのが問題だと思い、再設定をしてみたが改善せず、、、

そんなことをつぶやいたら、@gtk2kさんがエラーをもとに解決方法を教えてくれた。

解決方法

指示通りブラウザのコンソールを確認したら、以下のエラーが出力された。

Uncaught TypeError: Cannot read property '1' of null
    at UnityLoader.js?t=1591981784037:3
    at UnityLoader.js?t=1591981784037:4

Unity WebGLでは、index.htmlにてUnityLoader.jsがローディングされる。ここで、OSやブラウザのバージョン判定を行っている。
以下のようにUnityLoader.jsを修正すると動作が確認された。

UnityLoader.js
// 修正前
case"Mac OS X":p=/Mac OS X (10[\.\_\d]+)/.exec(a)[1]

// 修正後
case"Mac OS X":p=/Mac OS X (1[\.\_\d]+)/.exec(a)[1]

macOS Big Surは11.xとなっており、修正前の正規表現(10[\.\_\d]+)だと10.xしか認識されないことになってしまう。

追記(2020/01/10)
@aguroshou0413さんにコメントで以下のコードだと、Big SurだけではなくCatalinaでも動くと教えていただいた。
(1[0-1][._\d]+)/だと、10.xも11.xも内包する。

UnityLoader.js
case"Mac OS X":p=/Mac OS X (1[0-1][._\d]+)/.exec(i)[1];

以下で、MacのOSを確認できる。

$ sw_vers
ProductName:    macOS
ProductVersion: 11.1
BuildVersion:   20C69

アドバイスを下さった@gtk2kさん、@aguroshou0413さん、ありがとうございました!

ビルドしたファイルの実行

ビルドしたファイルのディレクトリ上で、以下のコマンドを実行。

python3 -m http.server 8000

その後、以下のリンクをブラウザで開く。
http://localhost:8000

参考記事

Bug? Generated UnityLoader.js fails in iOS 14 public beta

JavaScriptでブラウザとOSを判定する2つの方法

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kohei-108
都市/建造環境における微生物コミュニティの研究事業者。 慶應SFCで微生物のゲノム解析論文を複数投稿、国内外の学会で複数発表。 世界を変える30人 Forbes 30UNDER30 Japan 受賞、Tokyo Startup Gateway 2020 最優秀賞、SONY U24 CO-CHALLENGE 2020 準グランプリなど。 UVERworldを心から愛しています!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?