示例#1
0
    public static void BuildUpdate()
    {
        var path       = ContentUpdateScript.GetContentStateDataPath(false);
        var m_Settings = AddressableAssetSettingsDefaultObject.Settings;
        AddressablesPlayerBuildResult result = ContentUpdateScript.BuildContentUpdate(AddressableAssetSettingsDefaultObject.Settings, path);

        Debug.Log("BuildFinish path = " + m_Settings.RemoteCatalogBuildPath.GetValue(m_Settings));
    }
示例#2
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);
        }
    }
示例#3
0
    private static async void PerformAddressablesCleanBuild()
    {
        stopWatch = Stopwatch.StartNew();
        UnityEngine.Debug.Log($"PerformAddressablesCleanBuild: {DateTime.UtcNow.ToLocalTime()}");
        var settings = AddressableAssetSettingsDefaultObject.Settings;

        if (settings == null)
        {
            UnityEngine.Debug.LogError("AddressableDefaultObject Setting is null");
            return;
        }
        var buildInput = new AddressablesDataBuilderInput(
            settings
            );
        AddressablesPlayerBuildResult addressablesPlayerBuildResult = settings.ActivePlayerDataBuilder.BuildData <AddressablesPlayerBuildResult>(buildInput);
        await Task.Delay(TimeSpan.FromSeconds(addressablesPlayerBuildResult.Duration));

        UnityEngine.Debug.Log($"Addressable build took {stopWatch.Elapsed.Seconds} seconds...");
    }
        public void Build_GroupWithPlayerDataGroupSchemaAndBundledAssetGroupSchema_LogsError()
        {
            const string groupName = "NewGroup";
            var          schemas   = new List <AddressableAssetGroupSchema> {
                ScriptableObject.CreateInstance <PlayerDataGroupSchema>(), ScriptableObject.CreateInstance <BundledAssetGroupSchema>()
            };
            AddressableAssetGroup group = Settings.CreateGroup(groupName, false, false, false, schemas);

            var context = new AddressablesDataBuilderInput(Settings);

            foreach (IDataBuilder db in Settings.DataBuilders)
            {
                if (db.CanBuildData <AddressablesPlayerBuildResult>())
                {
                    AddressablesPlayerBuildResult result = db.BuildData <AddressablesPlayerBuildResult>(context);
                    Assert.AreEqual(result.Error, $"Addressable group {groupName} cannot have both a {typeof(PlayerDataGroupSchema).Name} and a {typeof(BundledAssetGroupSchema).Name}");
                }
            }

            Settings.RemoveGroup(group);
        }