Bonjour,
Je poste ce sujet car j'ai un gros soucis au niveau des collisions de deux objets, qui ont tous les deux une box collider et d'un rigid body. Ces deux sont placés sur un plane, et se déplacent grâce aux touches fléchées.
Lors d'une collision entre ces objets, l'un d'eux (ou les deux) s'envolent littéralement. Ce que je n'arrive pas à saisir c'est dans le code aucun effort n'est effectué sur l'axe Y et les deux objets sont tous deux à "plat" sur le sol.
Serait ce un bug ou un mauvais codage de mon script ?
Merci d'avance
[DB-AL] Problème de collision de 2 box collider
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
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
Re: [DB-AL] Problème de collision de 2 box collider
Bonjour,
Poste le code de contrôle des objets ainsi qu'éventuellement leur inspector avec la partie physique (collider/rb) de visible.
je ne crois pas, pas de bug. Juste une gestion de la physique qui n'est jamais simple.
Poste le code de contrôle des objets ainsi qu'éventuellement leur inspector avec la partie physique (collider/rb) de visible.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: [DB-AL] Problème de collision de 2 box collider
Pas de physics matérial avec une valeur de rebond délirantes par hasard ?
Une autre piste, des phénomènes comme ça peuvent se produire lorsqu'une collision fait "rentrer un collider dans un autre" par exemple si ta collision fait rentrer l'un (les deux) cube dans le plane, la physic va chercher à séparer le cube du plane et le fait parfois brutalement en appliquant une force aux objets non statics. Pour checker ça il faudrait que tu vérifie qu'à aucun moment (en fixedUpdate vu que c'est de la physics) tes cubes passent sous leur hauteur normale (et donc ne rentrent pas dans le plane).
Sinon tu dis que "tes" cubes se déplacent avec les flèches, donc les deux sont mobiles? Est ce que tu les déplace en leur appliquant des forces ou en modifiant directement la position de leur transform? Dans le cas où tu leur modifie la position cela peut rentrer en conflit avec la physic des rebonds car si tu force leur position (en les déplaçant l'un vers l'autre) et qu'ils commencent à un peut se "superposer" la physics va essayer de les séparer pendant que les touches demandent le contraire. Au bout d'un moment ça pète.
Question qui peut paraitre bête, mais tes cubes sont ils de la même taille (rapport à une éventuelle différence de hauteur dans leur centre de gravité) ?
Enfin tu peux essayer de bidouiller les "collision détection", les "interpolate" ou même les "constrains position" de tes rigidBody.
Et en cas de galère absolue, si jamais dans ton gameplay se serra toujours des objets qui déplacent sur un plan sans relief, il serait peut être judicieux de passer en physics2D (oui on peut utiliser la physics2D dans un projet 3D)
Une autre piste, des phénomènes comme ça peuvent se produire lorsqu'une collision fait "rentrer un collider dans un autre" par exemple si ta collision fait rentrer l'un (les deux) cube dans le plane, la physic va chercher à séparer le cube du plane et le fait parfois brutalement en appliquant une force aux objets non statics. Pour checker ça il faudrait que tu vérifie qu'à aucun moment (en fixedUpdate vu que c'est de la physics) tes cubes passent sous leur hauteur normale (et donc ne rentrent pas dans le plane).
Sinon tu dis que "tes" cubes se déplacent avec les flèches, donc les deux sont mobiles? Est ce que tu les déplace en leur appliquant des forces ou en modifiant directement la position de leur transform? Dans le cas où tu leur modifie la position cela peut rentrer en conflit avec la physic des rebonds car si tu force leur position (en les déplaçant l'un vers l'autre) et qu'ils commencent à un peut se "superposer" la physics va essayer de les séparer pendant que les touches demandent le contraire. Au bout d'un moment ça pète.
Question qui peut paraitre bête, mais tes cubes sont ils de la même taille (rapport à une éventuelle différence de hauteur dans leur centre de gravité) ?
Enfin tu peux essayer de bidouiller les "collision détection", les "interpolate" ou même les "constrains position" de tes rigidBody.
Et en cas de galère absolue, si jamais dans ton gameplay se serra toujours des objets qui déplacent sur un plan sans relief, il serait peut être judicieux de passer en physics2D (oui on peut utiliser la physics2D dans un projet 3D)