public override void FixIssues(AddressableAssetSettings settings) { if (m_implicitAssets == null) { CheckForDuplicateDependencies(settings); } if (m_implicitAssets.Count == 0) { return; } var group = AddressablesUtility.GetOrCreateGroup(BuildScenesPreprocessor.ScenesDependenciesAddressablesGroupName); group.GetSchema <ContentUpdateGroupSchema>().StaticContent = true; foreach (var asset in m_implicitAssets) { var guidString = asset.ToString(); var entry = settings.CreateOrMoveEntry(guidString, group, false, false); entry.address = $"{Path.GetFileNameWithoutExtension(AssetDatabase.GUIDToAssetPath(guidString))}_{guidString}"; } settings.SetDirty(AddressableAssetSettings.ModificationEvent.BatchModification, null, true, true); }
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); s_BuildAddressablesImpl.Invoke(); } else { AddressableAssetSettingsDefaultObject.Settings.RemoveGroup(group); } BuildConfigurationSettings.Instance.Configuration.InitializeBuildData(target); EditorUtility.SetDirty(BuildConfigurationSettings.Instance); AssetDatabase.SaveAssets(); }