Ejemplo n.º 1
0
 /// <summary>
 /// Run a clean build before export.
 /// </summary>
 static public void PreExport()
 {
     Debug.Log("BuildAddressablesProcessor.PreExport start");
     AddressableAssetSettings.CleanPlayerContent();
     AddressableAssetSettings.BuildPlayerContent();
     Debug.Log("BuildAddressablesProcessor.PreExport done");
 }
Ejemplo n.º 2
0
    static void BuildOSX()
    {
        AddressableAssetSettings.BuildPlayerContent();
        SetBuildNumber();

        BuildPipeline.BuildPlayer(GetEnabledScenes(), "/root/project/checkout/build/MacOS/ChroMapper", BuildTarget.StandaloneOSX, BuildOptions.Development | BuildOptions.CompressWithLz4);
    }
Ejemplo n.º 3
0
 public static void Popup()
 {
     if (EditorUtility.DisplayDialog(Title, Message, Agree, Disagree))
     {
         AddressableAssetSettings.BuildPlayerContent();
     }
 }
Ejemplo n.º 4
0
    public static void BuildPlayerContent()
    {
        var d = GetSettings();

        d.ActivePlayerDataBuilderIndex = 3;
        AddressableAssetSettings.BuildPlayerContent();
    }
Ejemplo n.º 5
0
    static void BuildWindows()
    {
        AddressableAssetSettings.BuildPlayerContent();
        SetBuildNumber();

        BuildPipeline.BuildPlayer(GetEnabledScenes(), "/root/project/checkout/build/Win64/chromapper/ChroMapper.exe", BuildTarget.StandaloneWindows64, BuildOptions.Development | BuildOptions.CompressWithLz4);
    }
        public static string Build()
        {
            RefreshAssetsList();

            var path = ContentUpdateScript.GetContentStateDataPath(false);
            var res  = "";

            if (File.Exists(path))
            {
                // すでにStateDataがあれば、ContentUpdate(差分)ビルドします
                var result = ContentUpdateScript.BuildContentUpdate(AddressableAssetSettingsDefaultObject.Settings, path);
                if (result != null)
                {
                    res = result.Error;
                }
                else
                {
                    // エラーが発生したため、初回ビルドとして処理する
                    AddressableAssetSettings.BuildPlayerContent();
                    Debug.Log("BuildContentUpdate Error:初回ビルドで処理する");
                }
            }
            else
            {
                // StateDataがなければ、初回ビルドする
                AddressableAssetSettings.BuildPlayerContent();
            }
            return(res);
        }
Ejemplo n.º 7
0
 static void PublishBuild()
 {
     SFTPHelper.CleanFiles("*.*");
     AddressablesBundleBuildScript.AddFileToAddressables();
     AddressableAssetSettings.BuildPlayerContent();
     SFTPHelper.Upload("", "1.0.0");
 }
        public void BuildCompleteCallbackGetsCalled()
        {
            LogAssert.ignoreFailingMessages = true;
            AddressableAssetSettings oldSettings = AddressableAssetSettingsDefaultObject.Settings;

            AddressableAssetSettingsDefaultObject.Settings = Settings;

            try
            {
                bool callbackCalled = false;
                BuildScript.buildCompleted += (result) =>
                {
                    callbackCalled = true;
                };
                AddressableAssetSettings.BuildPlayerContent();
                Assert.IsTrue(callbackCalled);
            }
            finally
            {
                if (oldSettings != null)
                {
                    AddressableAssetSettingsDefaultObject.Settings = oldSettings;
                    AddressableAssetSettings.BuildPlayerContent();
                }
                LogAssert.ignoreFailingMessages = false;
            }
        }
Ejemplo n.º 9
0
        public static void BuildAddressables()
        {
            var s = AddressableAssetSettingsDefaultObject.Settings;

            s.buildSettings.bundleBuildPath = "./AddressableAssetsData";
            AddressableAssetSettings.BuildPlayerContent();
        }
 public static void BuildContent()
 {
     CreateVersionBuild.CreateVersion();
     SetDataBuilder();
     AddressableAssetSettings.CleanPlayerContent(AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilder);
     AddressableAssetSettings.BuildPlayerContent();
 }
Ejemplo n.º 11
0
        public void ConfigureForBuildAndBuild()
        {
            ConfigureForBuild();

            AddressableAssetSettings.CleanPlayerContent();
            AddressableAssetSettings.BuildPlayerContent();
            Debug.LogWarning($"Rebuilt addressables");
        }
Ejemplo n.º 12
0
 public static void BuildBundle()
 {
     AddressablesBundleBuildScript.CreatConfig();
     AddressableAssetSettings.CleanPlayerContent();
     BuildCache.PurgeCache(false);
     AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilderIndex = 3;
     AddressableAssetSettings.BuildPlayerContent();
 }
Ejemplo n.º 13
0
    //[MenuItem("Build/Build Content", false, 101)]
    public static void BuildContent()
    {
        HandleLuaFile();

        AddressableAssetBuildSettings buildSetting = new AddressableAssetBuildSettings();

        AddressableAssetSettings.BuildPlayerContent();
    }
 /// <summary>
 /// Run a clean build before export.
 /// </summary>
 //[MenuItem("Addressables/Shortcuts/Build Addressables")] //uncomment for a shortcut to building addressables
 static public void PreExport()
 {
     Debug.Log("Building Addressables...");
     AddressableAssetSettings.CleanPlayerContent(
         AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilder);
     AddressableAssetSettings.BuildPlayerContent();
     Debug.Log("Finished building addressables.");
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Run a clean build before export.
 /// </summary>
 private static void PreExport()
 {
     Debug.Log("BuildAddressablesProcessor.PreExport start");
     AddressableAssetSettings.CleanPlayerContent(AddressableAssetSettingsDefaultObject.Settings
                                                 .ActivePlayerDataBuilder);
     AddressableAssetSettings.BuildPlayerContent();
     Debug.Log("BuildAddressablesProcessor.PreExport done");
 }
 static async void BuildAddressables()
 {
     UnityEngine.Debug.Log("Cleaning addressables...");
     AddressableAssetSettings.CleanPlayerContent(AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilder);
     UnityEngine.Debug.Log("Building addressables...");
     AddressableAssetSettings.BuildPlayerContent();
     UnityEngine.Debug.Log("Addressables built for current platform.");
 }
 private void BuildAddressables()
 {
     Debug.Log("Building addressables...");
     AddressableAssetSettings.CleanPlayerContent(
         AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilder);
     AddressableAssetSettings.BuildPlayerContent();
     Debug.Log("Addressable build complete!");
 }
Ejemplo n.º 18
0
    public static void BuildAll()
    {
#if UNITY_EDITOR
        AddressableAssetSettingsDefaultObject.Settings.DisableCatalogUpdateOnStartup = true;
        AddressableAssetSettingsDefaultObject.Settings.BuildRemoteCatalog            = true;
#endif
        BuildLuaAndProto();
        AddressableAssetSettings.BuildPlayerContent();
    }
Ejemplo n.º 19
0
        public override void Build(BuildTarget target,
                                   Model.NodeData node,
                                   IEnumerable <PerformGraph.AssetGroups> incoming,
                                   IEnumerable <Model.ConnectionData> connectionsToOutput,
                                   PerformGraph.Output Output,
                                   Action <Model.NodeData, string, float> progressFunc)
        {
            var updatePerformed = false;

            if (!string.IsNullOrEmpty(m_profileName) && m_profileName != kCurrentProfile)
            {
                Settings.activeProfileId = AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileId(m_profileName);
                //AddressableAssetSettingsDefaultObject.Settings.activeProfileId = AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileId(m_profileName);
            }

            if (m_preferUpdate)
            {
                if (string.IsNullOrEmpty(m_contentStateFilePath) || !File.Exists(m_contentStateFilePath))
                {
                    m_contentStateFilePath = ContentUpdateScript.GetContentStateDataPath(false);
                }

                if (!string.IsNullOrEmpty(m_contentStateFilePath) && File.Exists(m_contentStateFilePath))
                {
                    ContentUpdateScript.BuildContentUpdate(AddressableAssetSettingsDefaultObject.Settings, m_contentStateFilePath);
                    updatePerformed = true;
                }
            }

            if (!updatePerformed)
            {
                var index = Settings.DataBuilders.IndexOf(m_currentDataBuilder);

                AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilderIndex = index;
                AddressableAssetSettings.BuildPlayerContent();
            }

            // AddressableBuilder does not add, filter or change structure of group, so just pass given group of assets
            if (Output != null)
            {
                var dst = (connectionsToOutput == null || !connectionsToOutput.Any())
                                        ? null
                                        : connectionsToOutput.First();

                if (incoming != null)
                {
                    foreach (var ag in incoming)
                    {
                        Output(dst, ag.assetGroups);
                    }
                }
                else
                {
                    Output(dst, new Dictionary <string, List <AssetReference> >());
                }
            }
        }
Ejemplo n.º 20
0
    private static void BuildPlayerHandler(BuildPlayerOptions options)
    {
        if (EditorUtility.DisplayDialog(Title, Message, Agree, Disagree))
        {
            AddressableAssetSettings.BuildPlayerContent();
        }

        BuildPlayerWindow.DefaultBuildMethods.BuildPlayer(options);
    }
Ejemplo n.º 21
0
    static void Build(string path)
    {
        if (!string.IsNullOrEmpty(path))
        {
            AddressableAssetSettings.BuildPlayerContent();

            switch (_platform)
            {
            case Platforms.WebGL:
                Settings_WebGL();
                break;

            case Platforms.WinMono:
                Settings_WinMono();
                break;

            case Platforms.WinIL2CPP:
                Settings_WinIL2CPP();
                break;

            case Platforms.Linux:
                Settings_Linux();
                break;

            case Platforms.Android:
                Settings_Android();
                break;

            default:
                Debug.LogError("Build failed: Platform not found!");
                break;
            }


            switch (_buildSpec)
            {
            case BuildSpecs.Client:
                BuildClient(path);
                break;

            case BuildSpecs.All:
                BuildClient(path);
                break;

            default:
                Debug.LogError("Build(): No such build spec found in BuildSpecs!");
                break;
            }
        }
        else
        {
            Debug.LogError("Build failed: Missing buildPath,  or buildSpec or buildPlatform. Check commandline");
        }

        CopySupportFiles(path);
    }
Ejemplo n.º 22
0
        public static void BuildProject()
        {
            // Gather values from args
            var options = ArgumentsParser.GetValidatedOptions();

            // Gather values from project
            var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();

            // Get all buildOptions from options
            BuildOptions buildOptions = BuildOptions.None;

            foreach (string buildOptionString in Enum.GetNames(typeof(BuildOptions)))
            {
                if (options.ContainsKey(buildOptionString))
                {
                    BuildOptions buildOptionEnum = (BuildOptions)Enum.Parse(typeof(BuildOptions), buildOptionString);
                    buildOptions |= buildOptionEnum;
                }
            }

            // Define BuildPlayer Options
            var buildPlayerOptions = new BuildPlayerOptions {
                scenes           = scenes,
                locationPathName = options["customBuildPath"],
                target           = (BuildTarget)Enum.Parse(typeof(BuildTarget), options["buildTarget"]),
                options          = buildOptions
            };

            // Set version for this build
            VersionApplicator.SetVersion(options["buildVersion"]);
            VersionApplicator.SetAndroidVersionCode(options["androidVersionCode"]);

            // Apply Android settings
            if (buildPlayerOptions.target == BuildTarget.Android)
            {
                AndroidSettings.Apply(options);
            }

            // Execute default AddressableAsset content build, if the package is installed
#if USE_ADDRESSABLES
            AddressableAssetSettings.CleanPlayerContent();
            AddressableAssetSettings.BuildPlayerContent();
#endif

            // Perform build
            BuildReport buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);

            // Summary
            BuildSummary summary = buildReport.summary;
            StdOutReporter.ReportSummary(summary);

            // Result
            BuildResult result = summary.result;
            StdOutReporter.ExitWithResult(result);
        }
Ejemplo n.º 23
0
        internal static void SetupAddressableScenes(BuildTarget target)
        {
            if (BuildConfigurationSettings.Instance.HasValidConfiguration == false)
            {
                return;
            }

            InitializeAddressablesSettings();
            // TODO: Don't create a group until we checked that even 1 scene is Addressable
            var group         = AddressablesUtility.GetOrCreateGroup(ScenesAddressablesGroupName);
            var configuration = BuildConfigurationSettings.Instance.Configuration;

            AddAddressableScenesIntoGroup(configuration.GetAddressableDefaultScenes(), group);

            foreach (var platformsConfiguration in configuration.Platforms)
            {
                var editorBuildTargets = platformsConfiguration.GetBuildTargetsEditor();
                if (editorBuildTargets.Contains(target))
                {
                    AddAddressableScenesIntoGroup(platformsConfiguration.GetAddressableScenes(), group);
                    break;
                }
            }

            if (group.entries.Count > 0)
            {
                var rule    = AnalyzeSystemHelper.FindRule <FindScenesDuplicateDependencies>();
                var results = AnalyzeSystemHelper.RefreshRule(rule);

                bool fixNeeded = false;
                foreach (var result in results)
                {
                    if (result.severity == MessageType.Error || result.severity == MessageType.Warning)
                    {
                        fixNeeded = true;
                        break;
                    }
                }

                if (fixNeeded)
                {
                    AnalyzeSystemHelper.FixIssues(rule);
                }
                AnalyzeSystemHelper.ClearAnalysis(rule);
                AddressableAssetSettings.BuildPlayerContent();
            }
            else
            {
                AddressableAssetSettingsDefaultObject.Settings.RemoveGroup(group);
            }
            BuildConfigurationSettings.Instance.Configuration.InitializeBuildData(target);
            EditorUtility.SetDirty(BuildConfigurationSettings.Instance);
            AssetDatabase.SaveAssets();
        }
Ejemplo n.º 24
0
        private void Build()
        {
            PlayerSettings.Android.keystorePass = keystorePass;
            PlayerSettings.Android.keyaliasName = keyaliasName;
            PlayerSettings.Android.keyaliasPass = keyaliasPass;
            if (useAddressables)
            {
                if (clearAddressables)
                {
                    AddressableAssetSettings.CleanPlayerContent(
                        AddressableAssetSettingsDefaultObject.Settings.ActivePlayerDataBuilder);
                }
                AddressableAssetSettings.BuildPlayerContent();
            }
            EditorUserBuildSettings.buildAppBundle = buildAppBundle;
            if (!buildAppBundle)
            {
                PlayerSettings.Android.useAPKExpansionFiles = splitApplicationBinary;
            }

            // Get filename.
            List <string> scenes = new List <string>();

            foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
            {
                if (scene.enabled)
                {
                    scenes.Add(scene.path);
                }
            }
            //string[] levels = new string[] { "Assets/_GUDE_SCENES/InitialScene.unity", "Assets/_GUDE_SCENES/WebLoader.unity", "Assets/_GUDE_SCENES/Story_For_Test.unity", "Assets/_GUDE_SCENES/Story_For_Game.unity" };
            string       fileName = $"Builds/Gude_{PlayerSettings.Android.bundleVersionCode.ToString()}_{(isDevelopmentBuild ? "dev" : "prod")}.{(buildAppBundle?"aab":"apk")}";
            BuildOptions options  = BuildOptions.None;

            if (runAfterBuild)
            {
                options |= BuildOptions.AutoRunPlayer;
            }
            if (isDevelopmentBuild)
            {
                options |= BuildOptions.Development;
                options |= BuildOptions.ConnectWithProfiler;
                options |= BuildOptions.AllowDebugging;
                options |= BuildOptions.EnableDeepProfilingSupport;
            }

            // Build player.
            BuildPipeline.BuildPlayer(scenes.ToArray(), fileName, BuildTarget.Android, options);
            PlayerSettings.bundleVersion = currentVersion + "." + PlayerSettings.Android.bundleVersionCode.ToString();
            if (!isDevelopmentBuild)
            {
                PlayerSettings.Android.bundleVersionCode += 1;
            }
        }
Ejemplo n.º 25
0
        public static void Build(bool encrypt = false)
        {
            //每次打包前一定要调用一次这个方法,这个方法会对配置过的代码做预处理,之后才能加载补丁代码
            IFixEditor.InjectAssemblys();

            //addressable打包和assetBundle打包,调用不同的接口
            if (FrameConstr.UseAssetAddress == AssetAddress.Addressable)
            {
                AddressableAssetSettings.BuildPlayerContent();
            }
            else
            {
                //打ab包
                if (encrypt)
                {
                    BundleEditor.EncryptionBuild();
                }
                else
                {
                    BundleEditor.NormalBuild();
                }
            }

            //写入版本号
            SaveVersion(PlayerSettings.bundleVersion, PlayerSettings.applicationIdentifier, encrypt);
            //生成可执行程序

            string savePath = "";

            if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android)
            {
                //PlayerSettings.Android.keystorePass = "******";
                //PlayerSettings.Android.keyaliasPass = "******";
                //PlayerSettings.Android.keyaliasName = "android.keystore";
                //PlayerSettings.Android.keystoreName = Application.dataPath.Replace("/Assets", "") + "/improve.keystore";
                savePath = m_AndroidPath + m_AppName + "_" + EditorUserBuildSettings.activeBuildTarget + string.Format("_{0:yyyy_MM_dd_HH_mm}", DateTime.Now) + ".apk";
            }
            else if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.iOS)
            {
                savePath = m_IOSPath + m_AppName + "_" + EditorUserBuildSettings.activeBuildTarget + string.Format("_{0:yyyy_MM_dd_HH_mm}", DateTime.Now);
            }
            else if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows || EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64)
            {
                savePath = m_WindowsPath + m_AppName + "_" + EditorUserBuildSettings.activeBuildTarget + string.Format("_{0:yyyy_MM_dd_HH_mm}/{1}.exe", DateTime.Now, m_AppName);
            }

            BuildPipeline.BuildPlayer(FindEnableEditorrScenes(), savePath, EditorUserBuildSettings.activeBuildTarget, BuildOptions.None);
            if (FrameConstr.UseAssetAddress != AssetAddress.Addressable)
            {
                //删除
                DeleteDir(Application.streamingAssetsPath);
            }
        }
Ejemplo n.º 26
0
    public static void BuildContent()
    {
        Debug.LogError("首次打包使用,会总把bundle资源克隆到对应的StreamingAsset目录");
        AddressableAssetSettings.BuildPlayerContent();
        string linkPath = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/')) + "/" + AddressableAssetSettingsDefaultObject.Settings.RemoteCatalogBuildPath.GetValue(AddressableAssetSettingsDefaultObject.Settings);

        Debug.LogError(linkPath);
        var exportPath = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/')) + "/" + Addressables.BuildPath + "/" + Utility.GetPlatformName();

        Debug.LogError(exportPath);
        MyEditorTools.CopyDirectory(linkPath, exportPath, true);
        AssetDatabase.Refresh();
    }
Ejemplo n.º 27
0
        public static void NewPipelineBuild()
        {
            Save();

            Versioning.ClearConsole();

            SemVer.BumpPatch();

            AddressableAssetSettings.BuildPlayerContent();

            LoadResourceFile();

            OpenBuildFolder();
        }
Ejemplo n.º 28
0
    public static void ToggleSimulationMode()
    {
        Debug.Log("Hey");

        BuildScript.buildCompleted += result =>
        {
            foreach (var path in result.FileRegistry.GetFilePaths())
            {
                Debug.Log(path);
            }
        };

        AddressableAssetSettings.BuildPlayerContent();
    }
Ejemplo n.º 29
0
    static void PerformIosDistributionBuild(string teamId, string profileId, bool universal)
    {
        AddressableAssetSettings.BuildPlayerContent();

        if (Application.isBatchMode && string.IsNullOrEmpty(teamId))
        {
            Debug.LogError($"Team ID: {teamId} is empty.");
            EditorApplication.Exit(-1);
        }

        BuildPlayerOptions options = new BuildPlayerOptions
        {
            scenes = Scenes, target = BuildTarget.iOS, locationPathName = "./build"
        };

        // Pro 버전일때만 되는 기능이긴 한데, 이걸 켜고 푸시한 경우도 있을테니 여기서 꺼서 안전장치로 작동하게 한다.
        PlayerSettings.SplashScreen.show = false;
        // BLACK_DEBUG 심볼을 빼서 디버그 메시지 나오지 않도록 한다.
        if (Environment.GetEnvironmentVariable("BLACK_DEV_BUILD") != "1")
        {
            RemovingBlackDebugDefine(BuildTargetGroup.iOS);
        }

        PlayerSettings.iOS.appleDeveloperTeamID = teamId;
        if (string.IsNullOrEmpty(profileId))
        {
            PlayerSettings.iOS.appleEnableAutomaticSigning = true;
        }
        else
        {
            PlayerSettings.iOS.appleEnableAutomaticSigning      = false;
            PlayerSettings.iOS.iOSManualProvisioningProfileID   = profileId;
            PlayerSettings.iOS.iOSManualProvisioningProfileType = ProvisioningProfileType.Distribution;
        }

        PlayerSettings.SetArchitecture(BuildTargetGroup.iOS,
                                       (int)(universal ? AppleMobileArchitecture.Universal : AppleMobileArchitecture.ARM64));

        var cmdArgs = Environment.GetCommandLineArgs().ToList();

        ProcessBuildNumber(cmdArgs);
        UnbindAllTemporaryAssets();
        var buildReport = BuildPipeline.BuildPlayer(options);

        if (buildReport.summary.result != BuildResult.Succeeded && Application.isBatchMode)
        {
            EditorApplication.Exit(-1);
        }
    }
Ejemplo n.º 30
0
    internal static void PrepareForPlayerbuild(AddressableAssetSettings settings, BuildPlayerContext buildPlayerContext, bool buildAddressables)
    {
        if (settings != null && buildAddressables)
        {
            AddressablesPlayerBuildResult result;
            if (BuildAddressablesOverride != null)
            {
                try
                {
                    result = BuildAddressablesOverride.Invoke(settings);
                }
                catch (Exception e)
                {
                    result       = new AddressablesPlayerBuildResult();
                    result.Error = "Exception in BuildAddressablesOverride: " + e;
                }
            }
            else
            {
                AddressableAssetSettings.BuildPlayerContent(out result);
            }

            if (result != null && !string.IsNullOrEmpty(result.Error))
            {
                Debug.LogError($"Failed to build Addressables content, content not included in Player Build. \"{result.Error}\"");
            }
        }

        if (buildPlayerContext != null)
        {
            var streamingAssetValues = GetStreamingAssetPaths();
            foreach (KeyValuePair <string, string> streamingAssetValue in streamingAssetValues)
            {
                buildPlayerContext.AddAdditionalPathToStreamingAssets(streamingAssetValue.Key,
                                                                      streamingAssetValue.Value);
            }
        }

        string buildPath = Addressables.BuildPath + "/AddressablesLink/link.xml";

        if (File.Exists(buildPath))
        {
            string projectPath = GetLinkPath(settings, true);
            File.Copy(buildPath, projectPath, true);
            AssetDatabase.ImportAsset(projectPath, ImportAssetOptions.ForceSynchronousImport | ImportAssetOptions.DontDownloadFromCacheServer);
        }
    }