private void DrawBuildButtons() { if (GUILayout.Button("Android")) { EditorApplication.delayCall += delegate() { bundleBuilder.Execute(BuildTarget.Android); }; } if (GUILayout.Button("iOS")) { EditorApplication.delayCall += delegate() { bundleBuilder.Execute(BuildTarget.iOS); }; } { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Windows")) { EditorApplication.delayCall += delegate() { bundleBuilder.Execute(BuildTarget.StandaloneWindows); }; } if (GUILayout.Button("Windows64")) { EditorApplication.delayCall += delegate() { bundleBuilder.Execute(BuildTarget.StandaloneWindows64); }; } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("OSX")) { EditorApplication.delayCall += delegate() { bundleBuilder.Execute(BuildTarget.StandaloneOSX); }; } }
public void Execute(BuildTargetGroup buildTargetGroup, BuildTarget buildTarget) { Config(buildTargetGroup, buildTarget); if (configButDontBuild) { return; } if (bundleBuilder != null) { bundleBuilder.Execute(buildTarget); } BuildPlayerOptions options = new BuildPlayerOptions(); string[] scenePaths = new string[scenes.Length]; for (int i = 0; i < scenePaths.Length; i++) { scenePaths[i] = AssetDatabase.GetAssetPath(scenes[i]); } options.scenes = scenePaths; if (string.IsNullOrEmpty(locationPathName)) { locationPathName = EditorUtility.SaveFolderPanel("Choose Output Folder", "", ""); if (string.IsNullOrEmpty(locationPathName)) { return; } } string path = locationPathName .Replace(Wildcard_BuildTarget, buildTarget.ToString()) .Replace(Wildcard_BuildNumber, buildNumber.ToString()) .Replace(Wildcard_BundleIdentifier, bundleIdentifier) .Replace(Wildcard_BundleVersion, bundleVersion) .Replace(Wildcard_CompanyName, companyName) .Replace(Wildcard_Date, DateTime.Now.ToString("yyyyMMdd")) .Replace(Wildcard_ProductName, productName) .Replace(Wildcard_Time, DateTime.Now.ToString("HHmmss")); switch (buildTarget) { case BuildTarget.StandaloneWindows: options.locationPathName = string.Format("{0}/{1}.exe", path, PlayerSettings.productName); break; case BuildTarget.StandaloneWindows64: options.locationPathName = string.Format("{0}/{1}.exe", path, PlayerSettings.productName); break; case BuildTarget.Android: options.locationPathName = string.Format("{0}.apk", path); break; default: options.locationPathName = path; break; } options.target = buildTarget; options.options = BuildOptions.ShowBuiltPlayer; #if UNITY_2018_1_OR_NEWER BuildReport report = BuildPipeline.BuildPlayer(options); var summary = report.summary; switch (summary.result) { case BuildResult.Failed: Debug.LogError("Build Failed"); break; case BuildResult.Succeeded: Debug.Log("Build Succeeded"); copyList.CopyFiles(path); break; } #else Debug.Log(BuildPipeline.BuildPlayer(options)); copyList.CopyFiles(path); #endif }