Page 1 sur 1

Changer la couleur d'un material

Publié : 19 Nov 2020 22:39
par ced_le_dingue
Salut à tous,

Je souhaiterai changer la couleur d'un material, et ce pour tous mes objets ayant ce matérial.
J'ai cru comprendre que pour ce faire, il faut utiliser ceci:

Code : Tout sélectionner

renderer.sharedMaterial
Moi j'ai 2 matérials "TuileCouleurA" et "TuileCouleurB" (dont je souhaite modifier la couleur via un script):
Image
Cependant, je ne sais absolument pas comment m'y prendre pour utiliser "renderer.sharedMaterial"; tout ce que j'ai pu trouver, ce sont des façons de faire qui agissent directement sur l'objet, (ne possédant qu'un seul material qui plus est); telle que:

Code : Tout sélectionner

//Exemple de façon de faire que j'ai pu trouver
Sphere1.GetComponent<MeshRenderer>().sharedMaterial.color = color;
Or moi je voudrai quelque chose comme " renderer.sharedMaterial.name("TuileCouleurA").color = color.red (par exemple)
Autrement dit, indépendamment de l'objet en lui même.

N.b: Le but c'est de pouvoir permettre au joueur de choisir des skins différents (je ferai un menu pour changer les couleurs)

Comment faut il s'y prendre?

Merci pour votre aide :)

Re: Changer la couleur d'un material

Publié : 20 Nov 2020 10:45
par boubouk50
Salut,

déjà, tu as sharedMaterials pour avoir accès à tous les matériaux partagés de l'objet référencé.
Ensuite, si tu veux passer par le sharedMaterial, tu passes forcément par une référence, donc un gameObject.

Tu pourrais externaliser tes matériaux aussi, en passant par un scriptableObject.
Il posséderait les matériaux qui nécessitent des modifications au runtime qui seraient répercutées.

Re: Changer la couleur d'un material

Publié : 20 Nov 2020 21:45
par ced_le_dingue
Bonsoir Boubouk, merci pour ton message, je vais regarder ça de plus près alors :)