using System.Collections.Generic; using UnityEditor; using UnityEngine; public static class MaterialChecker { [MenuItem("Tools/Check Materials in Selected Object")] private static void CheckSelectedObject() { // ÇöÀç ¼±ÅÃµÈ ¿ÀºêÁ§Æ® GameObject selectedObject = Selection.activeGameObject; if (selectedObject == null) { Debug.LogWarning("¿ÀºêÁ§Æ®¸¦ ¼±ÅÃÇϼ¼¿ä."); return; } // ÀÚ½ÄÀÇ MeshRenderer¸¦ È®ÀÎ MeshRenderer[] meshRenderers = selectedObject.GetComponentsInChildren(); if (meshRenderers.Length == 0) { Debug.Log($"'{selectedObject.name}'¿¡´Â MeshRenderer°¡ Æ÷ÇÔµÈ ÀÚ½Ä ¿ÀºêÁ§Æ®°¡ ¾ø½À´Ï´Ù."); return; } // ¸ÅÅ͸®¾ó ¼öÁý HashSet uniqueMaterials = new HashSet(); foreach (var renderer in meshRenderers) { foreach (var material in renderer.sharedMaterials) { if (material != null) { uniqueMaterials.Add(material); } } } // °á°ú ·Î±× Ãâ·Â Debug.Log($"'{selectedObject.name}'¿¡ »ç¿ëµÈ °íÀ¯ÇÑ ¸ÅÅ͸®¾ó ¼ö: {uniqueMaterials.Count}"); int i = 0; foreach (var material in uniqueMaterials) { Debug.Log($"{i++} : {material.name}", material); } } }