Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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)));
                }
            }
        }
Exemplo n.º 3
0
        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;
            }
        }