示例#1
0
            void Start()
            {
                string buildPath = PublisherUtils.GetFirstValidBuildPath();

                if (string.IsNullOrEmpty(buildPath))
                {
                    Debug.LogError("There are no valid builds");
                    return;
                }
                Debug.Log("Your most recent valid build is located at: " + buildPath);
            }
示例#2
0
        /// <summary>
        /// Triggers the "Build Game" dialog
        /// </summary>
        /// <returns>True and the build path if everything goes well and the build is done, false and empty string otherwise.</returns>
        public static (bool, string) OpenBuildGameDialog(BuildTarget activeBuildTarget)
        {
            string path = string.Empty;

            try
            {
                string defaultOutputDirectory = PublisherUtils.GetFirstValidBuildPath();
                if (string.IsNullOrEmpty(defaultOutputDirectory) && CreateDefaultBuildsFolder)
                {
                    defaultOutputDirectory = DefaultBuildsFolderPath;
                    if (!Directory.Exists(defaultOutputDirectory))
                    {
                        Directory.CreateDirectory(defaultOutputDirectory);
                    }
                }

                path = EditorUtility.SaveFolderPanel(Localization.Tr("DIALOG_CHOOSE_BUILD_FOLDER"), defaultOutputDirectory, "");

                if (string.IsNullOrEmpty(path))
                {
                    return(false, string.Empty);
                }

                BuildPlayerOptions buildOptions = new BuildPlayerOptions();
                buildOptions.scenes           = EditorBuildSettingsScene.GetActiveSceneList(EditorBuildSettings.scenes);
                buildOptions.locationPathName = path;
                buildOptions.options          = BuildOptions.None;
                buildOptions.targetGroup      = BuildPipeline.GetBuildTargetGroup(activeBuildTarget);
                buildOptions.target           = activeBuildTarget;

                buildStartedFromTool = true;
                BuildReport report = BuildPipeline.BuildPlayer(buildOptions);
                buildStartedFromTool = false;

                AnalyticsHelper.BuildCompleted(report.summary.result, report.summary.totalTime);
                switch (report.summary.result)
                {
                case BuildResult.Cancelled:  //Debug.LogWarning("[Version and Build] Build cancelled! " + report.summary.totalTime);
                case BuildResult.Failed:     //Debug.LogError("[Version and Build] Build failed! " + report.summary.totalTime);
                    return(false, string.Empty);

                case BuildResult.Succeeded:   //Debug.Log("[Version and Build] Build succeeded! " + report.summary.totalTime);
                case BuildResult.Unknown:     //Debug.Log("[Version and Build] Unknown build result! " + report.summary.totalTime);
                    break;
                }
            }
            catch (BuildPlayerWindow.BuildMethodException /*e*/)
            {
                //Debug.LogError(e.Message);
                return(false, string.Empty);
            }
            return(true, path);
        }
示例#3
0
        void OnLocateBuildClicked()
        {
            AnalyticsHelper.ButtonClicked(string.Format("{0}_LocateBuild", CurrentTab));

            string lastBuildPath = PublisherUtils.GetFirstValidBuildPath();

            if (string.IsNullOrEmpty(lastBuildPath) && PublisherBuildProcessor.CreateDefaultBuildsFolder)
            {
                lastBuildPath = PublisherBuildProcessor.DefaultBuildsFolderPath;
                if (!Directory.Exists(lastBuildPath))
                {
                    Directory.CreateDirectory(lastBuildPath);
                }
            }

            string buildPath = EditorUtility.OpenFolderPanel(Localization.Tr("DIALOG_CHOOSE_FOLDER"), lastBuildPath, string.Empty);

            if (string.IsNullOrEmpty(buildPath))
            {
                return;
            }
            if (!PublisherUtils.BuildIsValid(buildPath))
            {
                Store.Dispatch(new OnErrorAction()
                {
                    errorMsg = Localization.Tr("ERROR_BUILD_CORRUPTED")
                });
                return;
            }
            PublisherUtils.AddBuildDirectory(buildPath);
            if (CurrentTab != TabUpload)
            {
                return;
            }
            SetupUploadTab();
        }