強火で進め

このブログではプログラム関連の記事を中心に書いてます。

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