Mac で「AssetBundle Manager & Example Scenes」に付属している AssetBundle Server の起動に失敗
「AssetBundle Manager & Example Scenes」のアセットが有ります。
このアセットには通常サーバで管理する AssetBundle のデータをローカルでお手軽に管理出来るように AssetBundle Server というものが付属しています。
以下のパスにインポートされます。
Assets/AssetBundleManager/Editor/AssetBundleServer.exe
このアプリはメニューから Assets > AssetBundles > Local AssetBundle Server と選択すると起動できるのですが、現在の Unity で実行すると以下の様なエラーを表示し、起動に失敗します。
Win32Exception: ApplicationName='/Applications/Unity/Unity.app/Contents/Frameworks/MonoBleedingEdge/bin/mono', CommandLine=''/Users/(ここはユーザ名)/Documents/git/unity-test/Assets/AssetBundleManager/Editor/AssetBundleServer.exe' "/Users/(ここはユーザ名)/Documents/git/unity-test/AssetBundles" 1194', CurrentDirectory='/Users/(ここはユーザ名)/Documents/git/unity-test/AssetBundles' System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) AssetBundles.LaunchAssetBundleServer.Run () (at Assets/AssetBundleManager/Editor/LaunchAssetBundleServer.cs:87) AssetBundles.LaunchAssetBundleServer.ToggleLocalAssetBundleServer () (at Assets/AssetBundleManager/Editor/LaunchAssetBundleServer.cs:27)
このエラーについては既に以下の Issue Tracker に登録済みで、とりあえずの対処方法をコメントされている方も居ました。
Unity Issue Tracker - [AssetBundle manager] Local AssetBundle server does not start up
https://issuetracker.unity3d.com/issues/assetbundle-manager-local-assetbundle-server-does-not-start-up
そのコメントを元に ExecuteInternalMono.cs の19行目からこの記述を
else if (Application.platform == RuntimePlatform.OSXEditor) return Path.Combine(editorAppPath, Path.Combine("Contents", "Frameworks"));
この様に変更するとエラー無く起動する様になりました。
else if (Application.platform == RuntimePlatform.OSXEditor) { #if UNITY_5_4_OR_NEWER return Path.Combine(editorAppPath, "Contents"); #else return Path.Combine(editorAppPath, Path.Combine("Contents", "Frameworks")); #endif }
原因
エラーが発生した原因はバージョン5.4まではこのパスに有った mono が
/Applications/Unity/Unity.app/Contents/Frameworks/MonoBleedingEdge/bin/mono
Frameworks の部分が無くなった以下のパスに移動した事みたいです。
/Applications/Unity/Unity.app/Contents/MonoBleedingEdge/bin/mono
関連情報
AssetBundle Manager & Example Scenes - アセットストア
https://www.assetstore.unity3d.com/jp/#!/content/45836