using System; using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor.AddressableAssets.GUI; using UnityEditor.AddressableAssets.Settings; using UnityEditor.Build.Pipeline; using UnityEditor.SceneManagement; using UnityEngine; namespace UnityEditor.AddressableAssets.Build.AnalyzeRules { class CheckResourcesDupeDependencies : BundleRuleBase { public override bool CanFix { get { return false; } } public override string ruleName { get { return "Check Resources to Addressable Duplicate Dependencies"; } } public override List RefreshAnalysis(AddressableAssetSettings settings) { ClearAnalysis(); string[] resourceDirectory = Directory.GetDirectories("Assets", "Resources", SearchOption.AllDirectories); List resourcePaths = new List(); foreach (string directory in resourceDirectory) resourcePaths.AddRange(Directory.GetFiles(directory, "*", SearchOption.AllDirectories)); return CalculateBuiltInResourceDependenciesToBundleDependecies(settings, resourcePaths.ToArray()); } public override void FixIssues(AddressableAssetSettings settings) { //Do nothing. There's nothing to fix. } } [InitializeOnLoad] class RegisterCheckResourcesDupeDependencies { static RegisterCheckResourcesDupeDependencies() { AnalyzeWindow.RegisterNewRule(); } } }