44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using UnityEngine;
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
#endif
|
|
|
|
public class DebugMatShader : MonoBehaviour
|
|
{
|
|
void Start()
|
|
{
|
|
var renderers = GetComponentsInChildren<Renderer>(true);
|
|
if (renderers == null || renderers.Length == 0)
|
|
{
|
|
Debug.Log("No Renderer (including children)");
|
|
return;
|
|
}
|
|
|
|
Debug.Log($"Found {renderers.Length} renderer(s) under: {gameObject.name}");
|
|
|
|
foreach (var r in renderers)
|
|
{
|
|
if (!r) continue;
|
|
var mats = r.sharedMaterials;
|
|
if (mats == null) continue;
|
|
|
|
for (int i = 0; i < mats.Length; i++)
|
|
{
|
|
var m = mats[i];
|
|
if (!m) continue;
|
|
|
|
var sh = m.shader;
|
|
string shName = sh ? sh.name : "(null)";
|
|
|
|
#if UNITY_EDITOR
|
|
string shPath = sh ? AssetDatabase.GetAssetPath(sh) : "";
|
|
Debug.Log($"Renderer={r.name} Mat[{i}]={m.name} Shader={shName} ShaderPath={shPath}");
|
|
#else
|
|
Debug.Log($"Renderer={r.name} Mat[{i}]={m.name} Shader={shName}");
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|