public void Initialize()
        {
            var filterOfBuildOp = AssetDatabase.FindAssets("t:ScriptableObject BuildOption");

            bop      = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(filterOfBuildOp.First()), typeof(BuildOptions)) as BuildOptions;
            _target  = bop.Target;
            _options = bop.Options;
        }
예제 #2
0
    private static void BuildPlayerImpl(string output, bool arch64 = false)
    {
        BuildTarget target = EditorUserBuildSettings.activeBuildTarget;

        SelectPlatform_WinPlayer();
        UnityEditor.BuildOptions options = BuildOptions.None;
        BuildPipeline.BuildPlayer(levels, output, arch64?BuildTarget.StandaloneWindows64:BuildTarget.StandaloneWindows, options);
        EditorUserBuildSettings.SwitchActiveBuildTarget(target);
    }
예제 #3
0
        private UnityEditor.BuildOptions GetBuildOptions()
        {
            UnityEditor.BuildOptions buildOptions = BuildOptions.None;
            if (IsArgSet(Arg_Development))
            {
                buildOptions |= BuildOptions.Development;
            }

            return(buildOptions);
        }
예제 #4
0
    public static void BuildPlayerImpl(string[] levels, string output, bool arch64 = false)
    {
        BuildTarget currentTarget = EditorUserBuildSettings.activeBuildTarget;

        EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.StandaloneWindows);

        BuildTarget buildTarget = arch64 ? BuildTarget.StandaloneWindows64 : BuildTarget.StandaloneWindows;

        AddGraphicApi(buildTarget, UnityEngine.Rendering.GraphicsDeviceType.Direct3D11);
        AddGraphicApi(buildTarget, UnityEngine.Rendering.GraphicsDeviceType.Direct3D9);

        UnityEditor.BuildOptions options = BuildOptions.None;
        BuildPipeline.BuildPlayer(levels, output, buildTarget, options);
        EditorUserBuildSettings.SwitchActiveBuildTarget(currentTarget);
    }
예제 #5
0
    public void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
    {
        Console.WriteLine("ios_binary_with_special_bundle begin");

        BuilderHelper.BootSceneFilename = "Assets/Scenes/Boot/PreBoot.unity";
        const int basicSceneCount = 7;

        if (scenesToBuild.Count > basicSceneCount)
        {
            scenesToBuild.RemoveRange(basicSceneCount, scenesToBuild.Count - basicSceneCount);
        }
        BuilderHelper.CleanStreamingAssets();
        BuilderHelper.Build(ref scenesToBuild, ref buildTarget, ref buildOptions, this, "index", null, false);
        BuilderHelper.CopyToStreamingAssets();

        InJoy.UnityBuildSystem.AutoBuild.UnityBuildPlayer(scenesToBuild, buildTarget, buildOptions);
        Console.WriteLine("ios_binary_with_special_bundle end");
    }
 public void SaveLastOptions(BuildTarget bt, UnityEditor.BuildOptions op)
 {
     Target  = bt;
     Options = op;
     EditorUtility.SetDirty(this);
 }
예제 #7
0
        public override void PerBuildExecute(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture architecture, BuildDistribution distribution, System.DateTime buildTime, ref UnityEditor.BuildOptions options, string configKey, string buildPath)
        {
            string resolvedOutputPath = Path.Combine(outputPath.Replace("$BUILDPATH", buildPath), outputFileName);

            resolvedOutputPath = BuildProject.ResolvePath(resolvedOutputPath, releaseType, platform, architecture, distribution, buildTime);

            string resolvedInputPath = inputPath.Replace("$BUILDPATH", buildPath);

            resolvedInputPath = BuildProject.ResolvePath(resolvedInputPath, releaseType, platform, architecture, distribution, buildTime);

            if (!resolvedOutputPath.EndsWith(".zip"))
            {
                resolvedOutputPath += ".zip";
            }

            PerformZip(Path.GetFullPath(resolvedInputPath), Path.GetFullPath(resolvedOutputPath));
        }
예제 #8
0
 public void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
 {
     Console.WriteLine("ios PreBuild");
     BuilderHelper.BootSceneFilename = "Assets/Scenes/Boot/Boot.unity";
     BuilderHelper.BuildInsidePlayer(ref scenesToBuild, ref buildTarget, ref buildOptions, this);
     InJoy.UnityBuildSystem.AutoBuild.UnityBuildPlayer(scenesToBuild, buildTarget, buildOptions);
     AssetBundlesFtp.GenerateIndexSizeMapToFile("assetBundlesSizeFile.txt");
     Console.WriteLine("ios PostBuild");
 }
 public void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
 {
     Console.WriteLine("ios_bundles_for_download PreBuild");
     BuilderHelper.BuildOutsideOfPlayer(ref scenesToBuild, ref buildTarget, ref buildOptions, this);
     Console.WriteLine("ios_bundles_for_download PostBuild");
 }
 private void BuildOptionsSelect()
 {
     _target  = (BuildTarget)EditorGUILayout.EnumPopup("build target :", _target);
     _options = (UnityEditor.BuildOptions)EditorGUILayout.EnumMaskField("build options :", _options);
     EditorGUILayout.Space();
 }
예제 #11
0
        public static void Build()
        {
            const string autoBuildBlock = "AutoBuild.Build()";

            BuildLogger.OpenBlock(autoBuildBlock);

            BuildLogger.LogMessage("Invoke PackageImporter explicitly");
            PackageAssetPostprocessor.ImportPackages();

            BuildLogger.LogMessage("Parsing additional params");
            var args = Environment.GetCommandLineArgs();

            UnityEditor.BuildOptions buildOptions = BuildOptions.None;

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i] == "+outdir" && args.Length > i + 1)
                {
                    outDir = args[i + 1];
                    BuildLogger.LogMessage("outDir: " + outDir);
                }
                else if (args[i] == "+configTypeName" && args.Length > i + 1)
                {
                    configTypeName = args[i + 1];
                    BuildLogger.LogMessage("configTypeName: " + configTypeName);
                    if (!configTypeName.Equals(configTypeName.Trim()))                    // to detect 'CR' at the end
                    {
                        BuildLogger.LogWarning("Build configurator type contains whitespaces (+configTypeName length = " + configTypeName.Length + ")!");
                    }
                }
                else if (args[i] == "+buildTag" && args.Length > i + 1)
                {
                    buildTag = args[i + 1];
                    BuildLogger.LogMessage("buildTag: " + buildTag);
                }
                else if (args[i] == "+configuration" && args.Length > i + 1)        //Test = development build; Release = None
                {
                    if (args[i + 1] == "Test")
                    {
                        buildOptions = BuildOptions.Development;
                        BuildLogger.LogMessage("configuration: Test(Development build)");
                    }
                    else
                    {
                        BuildLogger.LogMessage("configuration: Release");
                    }
                }
            }

            // produce Assets/Resources/build_tag.txt
            if (buildTag != null)
            {
                if (!Directory.Exists("Assets/Resources"))
                {
                    BuildLogger.LogMessage("Creating Assets/Resources");
                    Directory.CreateDirectory("Assets/Resources");
                }

                BuildLogger.LogMessage(string.Format("Writing Assets/Resources/{0}.txt: {1}", BuildInfo.k_build_tag, buildTag));

                Stream       file = File.Create(string.Format("Assets/Resources/{0}.txt", BuildInfo.k_build_tag));
                StreamWriter sw   = new StreamWriter(file);
                sw.Write(buildTag);
                sw.Close();
                file.Close();

                AssetDatabase.Refresh();
            }

            // prepare default build params
            BuildLogger.LogMessage("Preparing default build params");
            List <string> scenesToBuild = GetScenesToBuild();

            UnityEditor.BuildTarget buildTarget = BuildTarget.iPhone;
            BuildLogger.LogMessage("Default scenes to build:");
            foreach (string sceneName in scenesToBuild)
            {
                BuildLogger.LogMessage('\t' + sceneName);
            }
            BuildLogger.LogMessage("Default buildTarget=" + buildTarget.ToString());
            BuildLogger.LogMessage("Default buildOptions=" + buildOptions.ToString());

            // run custom builder (or fall back to default)
            Type configType = null;

            if (configTypeName != null)
            {
                configType = Type.GetType(configTypeName);
            }

            IBuildConfig buildConfig = null;

            if (configType != null)
            {
                if (configType.GetInterface("IBuildConfig") != null)
                {
                    ConstructorInfo defaultConstructorInfo = configType.GetConstructor(new Type [0]);
                    if (defaultConstructorInfo != null)
                    {
                        buildConfig = defaultConstructorInfo.Invoke(new object [0]) as IBuildConfig;
                        if (buildConfig != null)
                        {
                            BuildLogger.LogMessage("Using build configurator \"" + buildConfig.ToString() + "\"");
                        }
                        else
                        {
                            BuildLogger.LogWarning("Failed to construct an instance of build configurator type (+configTypeName \"" + configTypeName + "\")");
                        }
                    }
                    else
                    {
                        BuildLogger.LogWarning("Build configurator type (+configTypeName \"" + configTypeName + "\") does NOT have a default constructor");
                    }
                }
                else
                {
                    BuildLogger.LogWarning("Build configurator type (+configTypeName \"" + configTypeName + "\") does NOT implement IBuildConfig");
                }
            }
            else
            {
                BuildLogger.LogWarning("Build configurator type NOT found (+configTypeName \"" + configTypeName + "\")");
            }
            if (buildConfig != null)
            {
                string block = string.Format("{0}.Build()", buildConfig.GetType().Name);
                BuildLogger.OpenBlock(block);
                buildConfig.Build(scenesToBuild, buildTarget, buildOptions);
                BuildLogger.CloseBlock(block);
            }
            else
            {
                BuildLogger.LogError("Unable to configure build for " + configTypeName);
                throw new ApplicationException("Error: unable to configure build for " + configTypeName);
            }

            BuildLogger.CloseBlock(autoBuildBlock);
        }
예제 #12
0
 public virtual void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
 {
     AutoBuild.UnityBuildPlayer(scenesToBuild, buildTarget, buildOptions);
 }
 public void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
 {
     Console.WriteLine("ios_bundles_for_release PreBuild");
     BuilderHelper.BootSceneFilename = "Assets/Scenes/Boot/Boot.unity";
     BuilderHelper.BuildOutsidePlayer2(ref scenesToBuild, ref buildTarget, ref buildOptions, this);
     Console.WriteLine("ios_bundles_for_release PostBuild");
 }
예제 #14
0
    public void Build(System.Collections.Generic.List <string> scenesToBuild, UnityEditor.BuildTarget buildTarget, UnityEditor.BuildOptions buildOptions)
    {
        Console.WriteLine("ios without bundle PreBuild");
        BuilderHelper.BootSceneFilename = "Assets/Scenes/Boot/PreBoot.unity";
        //Remove all scenes except the first 3 basic ones

        const int basicSceneCount = 7;

        if (scenesToBuild.Count > basicSceneCount)
        {
            scenesToBuild.RemoveRange(basicSceneCount, scenesToBuild.Count - basicSceneCount);
        }
        InJoy.UnityBuildSystem.AutoBuild.UnityBuildPlayer(scenesToBuild, buildTarget, buildOptions);
        Console.WriteLine("ios without bundle PostBuild");
    }