扫描预制体的shader类型
[MenuItem("工具/测试工具/扫描场景预制体")]
public static void ScanScenePrefab()
{
GameObject go = Selection.activeObject as GameObject;
if (go != null)
{
foreach (var renderer in go.GetComponentsInChildren<Renderer>())//获取
Renderer属性 {
if(renderer is SkinnedMeshRenderer)//找出为render类型为SkinnedMeshRender的
{
Debug.LogWarning(renderer.name + "是SkinnedMeshRenderer");
}
for (int i = 0; i < renderer.sharedMaterials.Length; i++)
{
if (renderer.sharedMaterials[i].shader.name.Contains("Instancing"))//找出Instancing的shader
{
Debug.LogError(renderer.name + ".sharedMaterials[" + i +
"]的shader为"
+ renderer.sharedMaterials[i].shader.name);//打印出名字
}
}
}
}
}
}