Ejemplo n.º 1
0
    public static void MakeWeb()
    {
        var buildParams = new Builder.Params();

        string path = Path.Combine(Directory.GetCurrentDirectory(), "Build");

        path = Path.Combine(path, "Output");
        path = Path.Combine(path, "web");

        buildParams.Target       = BuildTarget.WebPlayer;
        buildParams.Location     = path;
        buildParams.Options      = BuildOptions.None;
        buildParams.ExtraOptions = Builder.Params.ExtraBuildOptions.None;         //Builder.Params.ExtraBuildOptions.BundleBasedPlayer|Builder.Params.ExtraBuildOptions.IncludeBundlesCache;
        buildParams.BuildNumber  = "";

        bool continueRequired = false;

        try
        {
            Make(buildParams);
        }
        catch (Builder.ContinueRequiredException)
        {
            continueRequired = true;
        }

        if (!continueRequired)
        {
            EditorApplication.Exit(0);
        }
    }
Ejemplo n.º 2
0
    public static void Make(Builder.Params buildParams)
    {
        using (var builder = Builder.CreateInstance(buildParams))
        {
#if !BREAK_LATE_LINKS_ONLY
            builder.Build();
#endif
        }
    }
Ejemplo n.º 3
0
    private static bool Make()
    {
        if (!EditorApplication.SaveCurrentSceneIfUserWantsTo())
        {
            return(false);
        }

        string buildLocation = Builder.LastBundlesLocation;

        if (string.IsNullOrEmpty(buildLocation))
        {
            buildLocation = EditorUtility.SaveFolderPanel("Select a folder to save the bundles", "", "Bundles");
        }
        else
        {
            buildLocation = EditorUtility.SaveFolderPanel("Select a folder to save the bundles", buildLocation, "");
        }

        if (string.IsNullOrEmpty(buildLocation))
        {
            return(false);
        }

        var buildParams = new Builder.Params();

        if (Directory.Exists(buildLocation))
        {
            int ret = EditorUtility.DisplayDialogComplex("Folder already exists", "What you want to do?", "Cancel", "Append", "Replace");
            switch (ret)
            {
            case 0:
                return(false);

            case 1:
                buildParams.Options |= BuildOptions.AcceptExternalModificationsToPlayer;
                break;

            case 2:
                buildParams.Options &= ~BuildOptions.AcceptExternalModificationsToPlayer;
                break;
            }
        }

        buildParams.Location = buildLocation;

        buildParams.ExtraOptions |= Builder.Params.ExtraBuildOptions.BundlesOnly;

        try
        {
            Build.Make(buildParams);
        }
        catch (System.OperationCanceledException) { }
        catch (Builder.ContinueRequiredException) { }

        return(true);
    }
Ejemplo n.º 4
0
    public static void CommandLineMake()
    {
        var buildParams = new Builder.Params();

        var args = Environment.GetCommandLineArgs();

        for (int i = 0; i < args.Length; i++)
        {
            if (args[i].StartsWith("+"))
            {
                string param = args[i].Substring(1).ToLower();

                switch (param)
                {
                case "buildtarget":
                {
                    string buildTarget = GetParamValue(args, i);

                    if (buildTarget == null)
                    {
                        throw new ArgumentException("Missing parameter value on +buildTarget");
                    }
                    else if (!string.IsNullOrEmpty(buildTarget))
                    {
                        buildParams.Target = (BuildTarget)Enum.Parse(typeof(BuildTarget), buildTarget, true);
                    }

                    i++;
                    break;
                }

                case "buildlocation":
                {
                    string buildLocation = GetParamValue(args, i);

                    if (buildLocation == null)
                    {
                        throw new ArgumentException("Missing parameter value on +buildLocation");
                    }
                    else if (!string.IsNullOrEmpty(buildLocation))
                    {
                        buildParams.Location = buildLocation;
                    }

                    i++;
                    break;
                }

                case "buildoptions":
                {
                    string buildOptions = GetParamValue(args, i);

                    if (buildOptions == null)
                    {
                        throw new ArgumentException("Missing parameter value on +buildOptions");
                    }
                    else if (!string.IsNullOrEmpty(buildOptions))
                    {
                        //Release and Test is "none" and debug is"Development"


                        if (buildOptions == "Release")
                        {
                            buildOptions             = "None";
                            buildParams.IsStageBuild = false;
                        }
                        else if (buildOptions == "Test")
                        {
                            buildOptions             = "None";
                            buildParams.IsStageBuild = true;
                        }
                        else
                        {
                            buildOptions             = "Development";
                            buildParams.IsStageBuild = true;
                        }

                        buildParams.Options |= (BuildOptions)Enum.Parse(typeof(BuildOptions), buildOptions, true);
                    }
                    i++;
                    break;
                }

                case "extrabuildoptions":
                {
                    string extraBuildOptions = GetParamValue(args, i);

                    if (extraBuildOptions == null)
                    {
                        throw new ArgumentException("Missing parameter value on +extraBuildOptions");
                    }
                    else if (!string.IsNullOrEmpty(extraBuildOptions))
                    {
                        buildParams.ExtraOptions |= (Builder.Params.ExtraBuildOptions)Enum.Parse(typeof(Builder.Params.ExtraBuildOptions), extraBuildOptions, true);
                    }

                    i++;
                    break;
                }

                case "buildnumber":
                {
                    string buildNumber = GetParamValue(args, i);

                    if (buildNumber == null)
                    {
                        throw new ArgumentException("Missing parameter value on +buildNumber");
                    }
                    else
                    {
                        buildParams.BuildNumber = buildNumber;
                    }

                    i++;
                    break;
                }

                case "androidsubtarget":
                {
                    string subTarget = GetParamValue(args, i);

                    if (subTarget == null)
                    {
                        throw new ArgumentException("Missing parameter value on +androidBuildSubtarget");
                    }
                    else if (!string.IsNullOrEmpty(subTarget))
                    {
                        buildParams.AndroidSubtarget = (AndroidBuildSubtarget)Enum.Parse(typeof(AndroidBuildSubtarget), subTarget, true);
                    }
                    ;

                    i++;
                    break;
                }

                case "isbuildstorebundleonly":
                {
                    return;
                }
                }
            }
        }

        bool continueRequired = false;

        try
        {
            Debug.Log("CommandLineMake .......... Make!!!");
            Make(buildParams);
        }
        catch (Builder.ContinueRequiredException)
        {
            continueRequired = true;
        }

        if (!continueRequired)
        {
            EditorApplication.Exit(0);
        }
    }
Ejemplo n.º 5
0
    private static bool Make(bool autoRun, string buildNumber, bool makeBundleBasedPlayer, bool includeBundles, bool includeBundlesCache, bool quickPlayer)
    {
        if (makeBundleBasedPlayer)
        {
            if (!EditorApplication.SaveCurrentSceneIfUserWantsTo())
            {
                return(false);
            }
        }

        string buildLocation = EditorUserBuildSettings.GetBuildLocation(BuildUtils.SelectedBuildTarget);

        if (string.IsNullOrEmpty(buildLocation))
        {
            buildLocation = BuildUtils.OpenSaveBuildPanel(BuildUtils.SelectedBuildTarget, "Select build location for " + BuildUtils.SelectedBuildTarget, null, null, null);
        }
        else
        {
            string directory = Path.GetDirectoryName(buildLocation);
            string file      = Path.GetFileNameWithoutExtension(buildLocation);
            string extension = Path.GetExtension(buildLocation);
            if (!string.IsNullOrEmpty(extension))
            {
                extension = extension.Substring(1);                 // Remove the initial dot
            }
            buildLocation = BuildUtils.OpenSaveBuildPanel(BuildUtils.SelectedBuildTarget,
                                                          "Select build location for " + BuildUtils.SelectedBuildTarget, directory, file, extension);
        }

        if (!string.IsNullOrEmpty(buildLocation))
        {
            EditorUserBuildSettings.SetBuildLocation(BuildUtils.SelectedBuildTarget, buildLocation);
        }
        else
        {
            return(false);
        }

        var buildParams = new Builder.Params();

        buildParams.BuildNumber = buildNumber;

        if (autoRun)
        {
            buildParams.Options |= BuildOptions.AutoRunPlayer;
        }
        else
        {
            buildParams.Options |= BuildOptions.ShowBuiltPlayer;
        }

        if (makeBundleBasedPlayer)
        {
            buildParams.ExtraOptions |= Builder.Params.ExtraBuildOptions.BundleBasedPlayer;

            if (includeBundles)
            {
                buildParams.ExtraOptions |= Builder.Params.ExtraBuildOptions.IncludeBundles;
            }

            if (includeBundlesCache)
            {
                buildParams.ExtraOptions |= Builder.Params.ExtraBuildOptions.IncludeBundlesCache;
            }

            if (quickPlayer)
            {
                buildParams.ExtraOptions |= Builder.Params.ExtraBuildOptions.QuickBundlePlayer;
            }
        }

        try
        {
            Build.Make(buildParams);
        }
        catch (System.OperationCanceledException) { }
        catch (Builder.ContinueRequiredException) { }

        return(true);
    }