[RESOLU] Impossible de cliquer sur un enfant d'un Rigidbody

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

[RESOLU] Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 25 Avr 2019 09:16

Bonjour, encore un petit problème que je n'arrive pas à résoudre.

J'ai un player (Empty) équipé d'un CapsuleCollider, et d'un Rigidbody.
J'ai la camera enfant de ce player.
Et j'ai plusieurs Cubes enfants de la camera qui me servent de boutons pour commander mon player.

Mon problème est que Unity ne détecte pas mes cubes pour pouvoir cliquer dessus.
Si j'enlève le Rigidbody, pas de problème, mais dans ce cas je n'ai plus la gravité.

Y a t'il moyen de conserver le Rigidbody et de pouvoir cliquer sur un objet enfant ?
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par DevAmat » 25 Avr 2019 11:59

Le rigidbody n'intervient pas pour la détection d'un click. Les collider ont ce rôle. La description de ton problème est étrange.
Si je comprends bien il faudrait que tu ajoutes un collider sur chaque cube. Mais attention car si il y a un collider par dessus (par exemple ton capsule collider) celui ci bloquera le click.

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

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 25 Avr 2019 14:07

Merci d'avoir bien voulu t’arrêter sur mon problème
DevAmat a écrit :Le rigidbody n'intervient pas pour la détection d'un click. Les collider ont ce rôle.
Jusque là on est entièrement d'accord.
DevAmat a écrit : Si je comprends bien il faudrait que tu ajoutes un collider sur chaque cube. Mais attention car si il y a un collider par dessus (par exemple ton capsule collider) celui ci bloquera le click.
La aussi tout est correct à ce que tu me précises. La caméra et les cubes sont au dessus du Capsule Collider. Il ne gène donc pas pour preuve, si j'enlève le rigidbody, tout fonctionne impeccable.
DevAmat a écrit :La description de ton problème est étrange.
C'est pour cela que je suis là.

Voilà le package de mon problème : https://drive.google.com/open?id=18Acvn ... hZDLzoIqX5
pour plus de précision. (C'est sur la version Unity 2019.1)
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par boubouk50 » 25 Avr 2019 14:51

N'est ce pas du a ta capsuleCollider qui vient par dessus les boutons?
Comme elle englobe les autres éléments clickables, le clic est sur elle et pas sur les enfants. C'est pour cela qu'en désactivant le rigidbody (donc le CapsuleCollider) elle ne bloque plus les autres éléments.
Il y a pas un layer spécial ignoreRaycast? (pour mettre ton gameObject du perso dedans, mais pas ses enfants)
Sinon, par code avec un raycast tu peux récupérer les éléments sous la souris.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

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

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 25 Avr 2019 15:11

Boubouk a écrit :N'est ce pas du a ta capsuleCollider qui vient par dessus les boutons?
Non, mes boutons sont bien au dessus de la capsuleCollider, avec la caméra, un peu comme si le player les portait sur la tête.
Boubouk a écrit :C'est pour cela qu'en désactivant le rigidbody (donc le CapsuleCollider) elle ne bloque plus les autres éléments.
La capsuleCollider est indépendante du rigidBody, pour tester j'ai désactivé la capsuleCollider et si je laisse le rigidbody ça ne marche toujours pas, si je l'enlève, ça marche
Boubouk a écrit :Il y a pas un layer spécial ignoreRaycast?
J'ai fait l'essai avec le layer ignoreRaycast sur mon player sans affecter les enfants et le problème reste le même.
Boubouk a écrit :Sinon, par code avec un raycast tu peux récupérer les éléments sous la souris.
Il ne me reste plus qu'à essayer cette solution

En tout cas merci
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 25 Avr 2019 15:33

Vous n'allez pas le croire, j'ai fait un test avec RayCast, et le problème reste le même.
Sans le rigidbody, le raycast est détecté, avec le rigidbody, aucune détection.
Les bras m'en tombe.
J'ai fait mes essais avec unity 2019, 2018 et 5.6, même problème.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par DevAmat » 25 Avr 2019 17:04

Lorsque tu "enlèves" le rigidbody tu désactives le component?

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

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 25 Avr 2019 17:33

Non, je le supprime "remove"
je ne crois pas qu'on puisse le désactiver
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

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

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par EmileF » 26 Avr 2019 09:20

Enfin de compte, je suis passé par les boutons UI, mais je n'aime pas la fonction Select et je ne sais pas comment l'enlever.
Pour l'éviter, j'ai créé mes propres événements et ça marche correctement.

Voici le package (Unity 2019) si ça interresse quelqu'un
https://drive.google.com/open?id=1mzO8D ... 9hjQfZXjTe

Mais je me pose toujours la question pourquoi le rigidbody empêche le click sur des objets enfants.

Si quelqu'un connait la réponse je suis curieux.

A bientôt et merci
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Impossible de cliquer sur un enfant d'un Rigidbody

Message par DevAmat » 26 Avr 2019 11:54

J'ai fais quelques recherches et en fait le rigidbody d'un parent va "capter" tous les events de ses enfants...

Il y a un exemple de discussion là:
https://forum.unity.com/threads/onmouse ... ved.29228/

J'ai pas trouver de détails sur la doc officielle.

La solution pour toi serait de mettre des rigidbody (en kinematic) sur tes boutons également, cela devrait fonctionner.

Répondre

Revenir vers « Unity le logiciel »