Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- using UnityEditor.AddressableAssets.Settings;
- namespace UnityEditor.AddressableAssets.Build.AnalyzeRules
- {
- [InitializeOnLoad]
- class RegisterAnalyzeDuplicateAddressableNames
- {
- static RegisterAnalyzeDuplicateAddressableNames()
- {
- AnalyzeSystem.RegisterNewRule<AnalyzeDuplicateAddressableNames>();
- }
- }
- class AnalyzeDuplicateAddressableNames : AnalyzeRule
- {
- //--------------------------------
- public override bool CanFix
- {
- get { return false;}
- }
- public override string ruleName
- {
- get { return "Check Duplicate Addressable Names"; }
- }
- //--------------------------------
- public override List<AnalyzeResult> RefreshAnalysis(AddressableAssetSettings settings)
- {
- List<AnalyzeResult> results = new List<AnalyzeResult>();
- HashSet<string> addressable_names = new HashSet<string>();
- for (int i = 0; i < settings.groups.Count; ++i)
- {
- AddressableAssetGroup group = settings.groups[i];
- foreach (AddressableAssetEntry entry in group.entries)
- {
- if (addressable_names.Contains(entry.address))
- {
- AnalyzeResult r = new AnalyzeResult();
- r.resultName = $"{group.name}:{entry.address}";
- r.severity = MessageType.Warning;
- results.Add(r);
- }
- else
- {
- addressable_names.Add(entry.address);
- }
- }
- }
- return results;
- }
- public override void FixIssues(AddressableAssetSettings settings)
- {
- base.FixIssues(settings);
- }
- public override void ClearAnalysis()
- {
- base.ClearAnalysis();
- }
- //--------------------------------
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement