UnityでWebGLアプリとして書き出しした後に
そのアプリが起動した時にMac
のChrome
だと起動しない現象が発生しました。
今回その解決策を共有したいと思います。
※開発環境
原因
どうやらMacOSがBigSurになってから動作しなくなっている報告が多数ありますた。
よってOS絡みの不具合だと思われます。
現状SafariやFirefoxでは正常動作しているようです。
解決方法
下記のコードをcsファイルとして作り、 Assets/Editor
配下に格納することで起動することができるようです。
下記スクリプトが何をしているかはよく分かってません(笑)。
// WebglPostBuild.cs using System.IO; using UnityEditor; using UnityEditor.Callbacks; using UnityEngine; public class WebglPostBuild { [PostProcessBuild(1)] public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) { if (target != BuildTarget.WebGL) return; Debug.Log(pathToBuiltProject); string[] filePaths = Directory.GetFiles(pathToBuiltProject, "*.js", SearchOption.AllDirectories); foreach(string file in filePaths) { if(file.ToLower().Contains("loader.js")) { string text = File.ReadAllText(file); text = text.Replace(@"Mac OS X (10[\.\_\d]+)", @"Mac OS X (1[\.\_\d][\.\_\d]+)"); File.WriteAllText(file, text); } } } }
あとがき
まぁMacのOSによる問題な気がしますので、新しいUnityのバージョンで解決されると信じてますが、起動せず困ってる人も少数いるかと思います。
自分の環境ではなんとかこの記事の手順で解決できましたので、同じ症状が発生している方は一度お試ししてみてください。