using System.Collections.Generic; using UnityEngine; namespace GraphicsCat { public static class MaterialUtils { public static HashSet FindAllMaterialsInScene(bool includeInactive = false) { var materials = new HashSet(); var findMode = includeInactive ? FindObjectsInactive.Include : FindObjectsInactive.Exclude; foreach (var renderer in Object.FindObjectsByType(findMode, FindObjectsSortMode.None)) { if (renderer is not (MeshRenderer or SkinnedMeshRenderer)) continue; foreach (var material in renderer.sharedMaterials) { if (material != null) { materials.Add(material); } } } return materials; } } }