material 在编辑模式下赋值,需要用整体的material【】赋值。
[MenuItem("MyEdidor/SetMeshRenderer")]
staticvoid CastShadows()
{
Object[]selection = Selection.GetFiltered(typeof(Component), SelectionMode.DeepAssets);
Component[]P;
Materialmat = new Material(Shader.Find("Diffuse"));
foreach(Components in selection)
{
P= s.GetComponentsInChildren(typeof(MeshRenderer), true);
foreach(MeshRendererp in P)
{
Material[]mats = p.sharedMaterials;
for(inti = 0; i< p.sharedMaterials.Length ; i++)
{
if(p.sharedMaterials[i].name.Contains("BaiQiang"))
{
mat= p.sharedMaterials[i];
}
}
for(inti = 0; i< p.sharedMaterials.Length ; i++)
{
if(p.sharedMaterials[i].name.Contains("DiBan"))
{
mats[i]= mat;
}
}
p.sharedMaterials= mats;
}
}
}