Je dispose d'un objet cube ayant par exemple 3 enfants ayant déjà un mesh et un matériau.
Avec cette fonction:
Code : Tout sélectionner
public Material new_mat;
public GameObject cube;
void Start()
{
color_cell_selected(new_mat);
}
void color_cell_selected(Material mat)
{
Renderer[] children=new Renderer[3];
children = cube..GetComponentsInChildren<Renderer>();
foreach (Renderer rend in children)
{
var mats = new Material[rend.materials.Length];
for (int m = 0; m < rend.materials.Length; m++)
{
mats[m] = mat;
}
rend.materials = mats;
}
}
(tous les enfants sont mat)
Ce n'est pas tout à fait ce que je souhaite faire car mon but est ceci:
enfant 1 a un nouveau materiau mat1=yellow
enfant 2 a un nouveau matériau mat2=red
enfant 3 a un nouveau matériau mat3=green
Si j'écris ce code:n°2:
Code : Tout sélectionner
public Material yellow,red,green;
public GameObject cube;
void Start()
{ Material[] mat=new Material[3];
mat[0]=yellow;
mat1[1]=red;
mat[2]=green;
color_cell_selected2(mat);}
void color_cell_selected2(Material[] mat)
{
Renderer[] children=new Renderer[3];
children = cube..GetComponentsInChildren<Renderer>();
foreach (Renderer rend in children)
{
var mats = new Material[rend.materials.Length];
for (int m = 0; m < rend.materials.Length; m++)
{
mats[m] = mat[m];
}
rend.materials = mats;
}
}
Peut-on me corriger le code n°2 pour que cela fonctionone?
merci de votre aide