Comment ajouter un MeshFilter à un objet à plusieurs matériaux différents ?

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 : 342
Inscription : 10 Août 2016 03:03

Comment ajouter un MeshFilter à un objet à plusieurs matériaux différents ?

Message par Kaloverian » 18 Déc 2021 23:14

bonjour,

Dans ce script C#,je dois ajouter,à un objet, composé de plusieurs objets ayant chacun un materiau différent, un MeshRenderer et un MeshFilter.
1)si les objets composants l'objet ont le même MeshFilter,
dois-je alors déclarer et utiliser les MeshRenderer et MeshFilter comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  Mesh meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
ou dois-je le faire comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  Mesh[] meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
ou comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  MeshFilters[] meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
2)si les objets composants l'objet ont chacun un MeshFilter différent,
dois-je alors déclarer et utiliser les MeshRenderer et MeshFilter comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  Mesh meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
ou dois-je le faire comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  Mesh[] meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
ou comme ceci:

Code : Tout sélectionner

 public Material[] materialsArray;

 public  MeshFilters[] meshFilters;

 objet.AddComponent<MeshRenderer>().materials=materialsArray;
 ObjectList[i].AddComponent<MeshFilter>().sharedMesh = meshFilters;
merci de votre aide

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

Re: Comment ajouter un MeshFilter à un objet à plusieurs matériaux différents ?

Message par Max » 19 Déc 2021 11:37

Bonjour,

j'avoue avoir du mal à comprendre ton explication, du moins je ne suis pas sûr que tu emplois toujours les bons termes.
Ceci dit, il faut savoir d'un GameObject ne peut avoir qu'un seul MeshFilter et un seul MeshRenderer.
Après un MeshRenderer peut effectivement posséder plusieurs Materials, cela n'a d’intérêt que si le mesh possède plusieurs submesh en tirant parti.
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 »