changer la couleur d'un materiau d'un objet

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
Kaloverian
Messages : 336
Inscription : 10 Août 2016 03:03

changer la couleur d'un materiau d'un objet

Message par Kaloverian » 22 Déc 2021 00:02

bonjour,

Afin de rendre visible un objet,toutt ce que je sais faire est:

Code : Tout sélectionner

public Material mat;
public Mesh mesh;
public GameObject obj;

 obj.AddComponent<MeshRenderer>().material = mat;
 obj.AddComponent<MeshFilter>().mesh = mesh;
Quel ligne à rajouter pour changer la couleur de ce materiau?
Changer de materiau(materiau d'une autre couleur)?
ou
un truc du genre ?:

Code : Tout sélectionner

material.color=Color.red;
J'ai écrit ceci et ça ne fonctionne pas:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class assign_color : MonoBehaviour
{    
    public GameObject obj1,obj2;

    public Material rouge,vert;
   
   

    public Mesh mesh;

  

   // Start is called before the first frame update
    void Start()
    {
          obj1.AddComponent<MeshRenderer>().material=vert;
        
          obj1.AddComponent<MeshFilter>().mesh = mesh;

         obj2.AddComponent<MeshRenderer>().material=rouge; 
           
           obj2.AddComponent<MeshFilter>().mesh = mesh;

           
     }

}

J'ai écrit aussi ceci et ça ne fonctionne pas non plus:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class assign_color : MonoBehaviour
{    
    public GameObject obj1,obj2;

  
    public Material[] mats;
   

    public Mesh mesh;


    // Start is called before the first frame update
    void Start()
    {
         
          obj1.AddComponent<MeshRenderer>().sharedMaterial=mats[0];
          obj1.AddComponent<MeshFilter>().mesh = mesh;

       
         
           obj2.AddComponent<MeshRenderer>().sharedMaterial=mats[1];
           obj2.AddComponent<MeshFilter>().mesh = mesh;

           
      
		
    }

 
puis ceci.Je n'y arrive pas !!

Code : Tout sélectionner

ender.material.SetColor ("_SpecColor", Color.red);


merci de votre aide

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: changer la couleur d'un materiau d'un objet

Message par Max » 22 Déc 2021 07:16

Bonjour,

la doc dit ceci: Material.SetColor
Kaloverian a écrit :
22 Déc 2021 00:02
puis ceci.Je n'y arrive pas !!

Code : Tout sélectionner

ender.material.SetColor ("_SpecColor", Color.red);
tu cherches à modifier la couleur du material, alors pourquoi essais-tu d'atteindre la SpecularColor ?
Il faut rester simple. Sur un shader standard (comme sur la plupart des shaders),, la couleur (Albedo Color) c'est simplement "_Color".
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « (C#) CSharp »