using System; using System.Collections.Generic; using System.Reflection; using UnityEngine; using UnityEngine.Pool; namespace Module.ProjectValidator.Editor { internal sealed class GameObjectValidatorObsoleteComponents : IGameObjectValidator { public void Validate(GameObject gameObject, List results) { using var _ = ListPool.Get(out var list); gameObject.GetComponents(list); for (var i = 0; i < list.Count; i++) { var type = list[i].GetType(); if (type.GetCustomAttribute(typeof(ObsoleteAttribute)) != null) results.Add(ValidatorResult.Create(EValidatorSeverity.Warning, $"GameObject has obsolete '{type.Name}' component")); } } } }