public static SettingsIssueRecord CheckTagsAndLayers() { var issueBody = new StringBuilder(); /* looking for duplicates in layers */ var layers = new List <string>(InternalEditorUtility.layers); layers.RemoveAll(string.IsNullOrEmpty); var duplicateLayers = CSArrayTools.FindDuplicatesInArray(layers); if (duplicateLayers.Count > 0) { if (issueBody.Length > 0) { issueBody.AppendLine(); } issueBody.Append("Duplicate <b>layer(s)</b>: "); foreach (var duplicate in duplicateLayers) { issueBody.Append('"').Append(duplicate).Append("\", "); } issueBody.Length -= 2; } /* looking for duplicates in sorting layers */ var sortingLayers = new List <string>((string[])CSReflectionTools.GetSortingLayersPropertyInfo().GetValue(null, new object[0])); sortingLayers.RemoveAll(string.IsNullOrEmpty); var duplicateSortingLayers = CSArrayTools.FindDuplicatesInArray(sortingLayers); if (duplicateSortingLayers.Count > 0) { if (issueBody.Length > 0) { issueBody.AppendLine(); } issueBody.Append("Duplicate <b>sorting layer(s)</b>: "); foreach (var duplicate in duplicateSortingLayers) { issueBody.Append('"').Append(duplicate).Append("\", "); } issueBody.Length -= 2; } if (issueBody.Length > 0) { return(SettingsIssueRecord.Create(AssetSettingsKind.TagManager, IssueKind.DuplicateLayers, issueBody.ToString())); } return(null); }
private static void CheckBuildSettings(List <IssueRecord> issues) { if (MaintainerSettings.Issues.duplicateScenesInBuild) { string[] scenesForBuild = GetEnabledScenesInBuild(); string[] duplicates = CSArrayTools.FindDuplicatesInArray(scenesForBuild); foreach (var duplicate in duplicates) { issues.Add(BuildSettingsIssueRecord.Create(RecordType.DuplicateScenesInBuild, "<b>Duplicate scene:</b> " + CSEditorTools.NicifyAssetPath(duplicate))); } } }
private static void CheckTagsAndLayers(List <IssueRecord> issues) { if (MaintainerSettings.Issues.duplicateTagsAndLayers) { StringBuilder issueBody = new StringBuilder(); /* looking for duplicates in tags*/ List <string> tags = new List <string>(InternalEditorUtility.tags); tags.RemoveAll(string.IsNullOrEmpty); List <string> duplicateTags = CSArrayTools.FindDuplicatesInArray(tags); if (duplicateTags.Count > 0) { issueBody.Append("Duplicate <b>tag(s)</b>: "); foreach (var duplicate in duplicateTags) { issueBody.Append('"').Append(duplicate).Append("\", "); } issueBody.Length -= 2; } /* looking for duplicates in layers*/ List <string> layers = new List <string>(InternalEditorUtility.layers); layers.RemoveAll(string.IsNullOrEmpty); List <string> duplicateLayers = CSArrayTools.FindDuplicatesInArray(layers); if (duplicateLayers.Count > 0) { if (issueBody.Length > 0) { issueBody.AppendLine(); } issueBody.Append("Duplicate <b>layer(s)</b>: "); foreach (var duplicate in duplicateLayers) { issueBody.Append('"').Append(duplicate).Append("\", "); } issueBody.Length -= 2; } /* looking for duplicates in sorting layers*/ Type internalEditorUtilityType = typeof(InternalEditorUtility); PropertyInfo sortingLayersProperty = internalEditorUtilityType.GetProperty("sortingLayerNames", BindingFlags.Static | BindingFlags.NonPublic); List <string> sortingLayers = new List <string>((string[])sortingLayersProperty.GetValue(null, new object[0])); sortingLayers.RemoveAll(string.IsNullOrEmpty); List <string> duplicateSortingLayers = CSArrayTools.FindDuplicatesInArray(sortingLayers); if (duplicateSortingLayers.Count > 0) { if (issueBody.Length > 0) { issueBody.AppendLine(); } issueBody.Append("Duplicate <b>sorting layer(s)</b>: "); foreach (var duplicate in duplicateSortingLayers) { issueBody.Append('"').Append(duplicate).Append("\", "); } issueBody.Length -= 2; } if (issueBody.Length > 0) { issues.Add(TagsAndLayersIssueRecord.Create(RecordType.DuplicateTagsAndLayers, issueBody.ToString())); } issueBody.Length = 0; } }