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.
[Résolu] Empêcher de cliquer sur un objet situé derrière un Panel
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
[Résolu] Empêcher de cliquer sur un objet situé derrière un Panel
Dernière édition par JollyStone le 07 Sep 2019 14:03, édité 1 fois.
Re: Empêcher de cliquer sur un objet situé derrière un Panel
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
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
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
Re: Empêcher de cliquer sur un objet situé derrière un Panel
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.
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…
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.
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
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
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