Bonjour,
dans ce petit projet, j'ai un joueur qui bouge sur la scène, et des objets Cible qui cherchent à se cacher du joueur. La scène contient des maisons avec un BoxCollider, et des arbres avec un CapsuleCollider, qui servent de cachette :
Quand une cible détecte qu'elle est visible du joueur, elle cherche la cachette la plus proche et va derrière (par rapport au joueur).
Je patauge un peu sur la définition de la position de "derrière". Pour l'instant, j'essaie un RaycastAll depuis le joueur en direction de la cachette (le trait orange sur le seconde image). Mais je ne détecte que le premier hit sur chaque collider, et il me faudrait le second (le plus proche de la cible) : en y ajoutant une distance égale au rayon de la cible, j'aurais la position à atteindre. Le premier hit ne suffit pas, car les cachettes ont des tailles variables. J'ai essayé Queries Hit Backfaces dans les paramètres de la physique, mais visiblement cela ne fonctionne pas.
J'ai essayé d'autres méthodes, en particulier Collider.Raycast et Physics.Raycast, sans succès.
Au pire, je peux calculer où se trouve le 2ème hit avec quelques calculs supplémentaires, mais j'aimerais savoir si ce problème n'est pas déjà connu et résolu, ou si une solution plus élégante existe.
Merci d'avance.
[Résolu] Comment trouver toutes les intersections d'un ray avec un collider ?
[Résolu] Comment trouver toutes les intersections d'un ray avec un collider ?
Dernière édition par jmhoubre le 20 Nov 2021 20:03, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6221
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Comment trouver toutes les intersections d'un ray avec un collider ?
Normalement, Physics.RaycastAll te retourne tous les colliders touchés. Dans le désordre, donc tu dois trier ensuite, mais tu dois les avoir.
Ce ne serait pas un problème de maxDistance ou de layer?
Ce ne serait pas un problème de maxDistance ou de layer?
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Comment trouver toutes les intersections d'un ray avec un collider ?
Mon souci n'est pas d'avoir tous les colliders, mais d'avoir tous les points du collider traversés par le rayon. Sur la cachette de la 2ème diapo, le rayon entre puis sort du collider. Les différentes méthodes de Raycast ne donnent que le point d'entrée. Je souhaite avoir le point de sortie.
- boubouk50
- ModoGenereux
- Messages : 6221
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Comment trouver toutes les intersections d'un ray avec un collider ?
Et en faisant un second RaycastAll mais dans le sens inverse?
Tu obtiendrais un second hit par Collider, qui correspondrait à celui qui sort.
Ensuite, à toi de voir la logique derrière.
Tu obtiendrais un second hit par Collider, qui correspondrait à celui qui sort.
Ensuite, à toi de voir la logique derrière.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Comment trouver toutes les intersections d'un ray avec un collider ?
Bonsoir, et merci pour la réponse.
Je mets du temps à répondre, car je cherchais toujours une réponse avec un seul tir de rayon.
Ne trouvant pas (du moins un truc simple), j'ai fini par faire un second tir. Cela fonctionne.
Je mets du temps à répondre, car je cherchais toujours une réponse avec un seul tir de rayon.
Ne trouvant pas (du moins un truc simple), j'ai fini par faire un second tir. Cela fonctionne.