Ajouter un mesh collider à un gameobject enfant avec un script?

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
grex
Messages : 140
Inscription : 30 Mars 2014 18:11

Ajouter un mesh collider à un gameobject enfant avec un script?

Message par grex » 23 Avr 2019 21:36

Bonjour,
J'ai plein de fichier obj, plus tot que les charger manuellement je préfère tout charger avec un script car j'en est beaucoup.
J'arrive à les instancier en temps que gameobject mais le probleme c'est que quant j'instancie un fichier obj sa me creer un gameobject qui contient un sous objet default qui contient le maillage.
J’aimerai pouvoir assigner un mesh collider au gameobject enfant qui contient le mesh.

Code : Tout sélectionner

MeshCollider meshCollider = ville.transform.GetChild(0).AddComponent<MeshCollider>();

Code : Tout sélectionner

GameObject ville = GameObject.Instantiate(Resources.Load("ville/ville1/fichierobjet1"), transform.position, transform.rotation) as GameObject;

        ville.transform.localScale = new Vector3(0.14f,0.14f,0.14f);

        MeshCollider meshCollider = ville.AddComponent<MeshCollider>();
Ne faite par attention aux fautes je suis dyslexique.
J'utilise déjà un correcteur automatique:
http://www.reverso.net/orthographe/correcteur-francais/

EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

Re: Ajouter un mesh collider à un gameobject enfant avec un script?

Message par EmileF » 24 Avr 2019 11:00

Bonjour, je n'ai pas tout approfondi, mais une chose me saute aux yeux c'est dans ton 2ème script, la ligne

Code : Tout sélectionner

MeshCollider meshCollider = ville.AddComponent<MeshCollider>();
là tu assignes ton MeshCollider au parent, alors que si tu utilises, comme tu le précises plus haut :

Code : Tout sélectionner

MeshCollider meshCollider = ville.transform.GetChild(0).AddComponent<MeshCollider>();
sauf erreur, tu assignes ton MeshCollider à l'enfant "0".
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Répondre

Revenir vers « (C#) CSharp »