Пример #1
0
        static void Build(string locationPathName, BuildTarget buildTarget)
        {
            if (buildTarget != EditorUserBuildSettings.activeBuildTarget)
            {
                BuildTargetGroup targetGroup = PlatformUtility.ConvertBuildTarget(buildTarget);
                EditorUserBuildSettings.SwitchActiveBuildTarget(targetGroup, buildTarget);
            }

            BuildPlayerOptions buildPlayerOptions = GetDefaultPlayerOptions();

            buildPlayerOptions.locationPathName = locationPathName;
            buildPlayerOptions.target           = buildTarget;

            var report = BuildPipeline.BuildPlayer(buildPlayerOptions);

            switch (report.summary.result)
            {
            case UnityEditor.Build.Reporting.BuildResult.Succeeded:
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Build succeeded! Executable is located at: {0}", buildPlayerOptions.locationPathName);
                Console.ResetColor();
                break;

            default:
                Environment.ExitCode = 1;
                break;
            }
        }
Пример #2
0
        public string GetOutputPath(BuildTarget buildTarget)
        {
            var extension = PlatformUtility.GetExtension(buildTarget);

            var defaultDirectory = "Builds";
            var defaultFilename  = string.Concat(PlayerSettings.productName, extension);
            var outputDirectory  = defaultDirectory;

            var outputFilename = defaultFilename;

            if (TryGetArgument("output", out var output))
            {
                if (Path.HasExtension(output))
                {
                    outputDirectory = Path.GetDirectoryName(output);
                    outputFilename  = Path.GetFileName(output);
                }
                else
                {
                    outputDirectory = output;
                    outputFilename  = defaultFilename;
                }
            }

            if (TryGetArgument("name", out string name))
            {
                outputFilename = Path.HasExtension(name) ? name : string.Concat(name, extension);
            }

            if (PlatformUtility.DoesTargetBuildAsFolder(buildTarget))
            {
                return(outputDirectory);
            }

            return(Path.Combine(outputDirectory, outputFilename));
        }