#region
private Renderer[] rendArray;
private List materials = new List();
///
/// 获取物体上所有的材质,并改变这些材质的Shader
///
private void GetModelAllMaterialsAndChange(GameObject gameObject, Shader targetShader)
{
materials.Clear();
rendArray = gameObject.transform.GetComponentsInChildren(true);
for (int i = 0; i < rendArray.Length; i++)
{
Material[] mats = rendArray[i].materials;
for (int j = 0; j < mats.Length; j++)
{
materials.Add(mats[j]);
}
}
for (int i = 0; i < materials.Count; i++)
{
materials[i].shader = targetShader;
}
}
#endregion