Page 1 sur 1

[Résolu] Empêcher de cliquer sur un objet situé derrière un Panel

Publié : 07 Sep 2019 12:20
par JollyStone
Bonjour,

Comment empêcher qu'un clic agisse sur un objet (Sprite) se trouvant derrière un Panel lorsque celui-ci est affiché ?

La situation est toute simple :
Le jeu consiste à faire tourner de 90° les objets sur lesquels un clic est effectué.
Lorsque le niveau est complété, le Canvas est activé et affiché par-dessus les objets (Sprites) de la scènes.
Le Canvas contient un Panel et quelques boutons.
Je cherche donc à empêcher un clic d'agir sur les objets en arrière plan.

Re: Empêcher de cliquer sur un objet situé derrière un Panel

Publié : 07 Sep 2019 12:37
par Alesk
Salut,

Tu as deux options simples :

1) lorsque le canvas est affiché, tu ajoutes un test dans ta fonction de test de raycast pour qu'il ne soit plus effectué

2) tu ajoutes un collider sur le canvas pour qu'il bloque les raycasts

Re: Empêcher de cliquer sur un objet situé derrière un Panel

Publié : 07 Sep 2019 13:50
par JollyStone
Salut Alesk,

J'ai tenté ta proposition d'ajouter un Collider (avec ou sans Rigidbody) au Canvas, en vain.
Même test sur le Panel, même résultat.

Quant à ta proposition te tester le Raycast, je ne comprends pas comment faire ça.
En fait, je n'utilise pas de Raycast, j'utilise OnMouseDown sur les Sprites qui contiennent un collider

Je précise que c'est un jeu en 2D, ça change peut-être quelque chose. :roll:

Quoi qu'il en soit, merci pour ton aide.

[Édit]
Bon, je viens de tester une autre idée…
La complication ici viens du fait que les objets sont instanciés.
Je récupère donc les instances dans un tableau et je désactive les Colliders de chaque instance dans une boucle Foreach.
Ce n'est sans doute pas la méthode la plus simple mais ça fonctionne.

Disons que le problème est résolu, mais…

Re: [Résolu] Empêcher de cliquer sur un objet situé derrière un Panel

Publié : 24 Nov 2020 23:10
par Huio
https://youtu.be/dtHM-FKvxFg?t=1217

J'ai trouvé ça dans cette vidéo qui est une méthode beaucoup mieux et plus opti aussi je pense
je répond un an après mais mieux vaut tard que jamais :)