problème rotation avec FixedJoint pour une porte.
problème rotation avec FixedJoint pour une porte.
Salut ! Comme dis dans le titre j'essaie de faire en sorte qu'une porte fasse une rotation lorsque un GameObjet comme un personnage la pousse, donc dans un sens elle s'ouvre (et reste ouverte) et dans l'autre elle se ferme et reste fermée. Le problème est que la porte se décale quand on la pousse, le mouvement de rotation est correcte mais je veux pas la translation, j'insère une image pour illustrer cela. Merci d'avance pour vos aides
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: problème rotation avec FixedJoint pour une porte.
Je vois que ton cube est une primitive scalée.
Essaie d'appliquer le joint à un parent vide du cube dont le scale serait [1 1 1] et ne garder la porte juste pour le mesh.
Essaie d'appliquer le joint à un parent vide du cube dont le scale serait [1 1 1] et ne garder la porte juste pour le mesh.
"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: problème rotation avec FixedJoint pour une porte.
Yo ! Merci de ta réponse très rapide !
Demain après midi je retourne en projet donc ton aide est très précieuse
J'avoue ne pas connaître ou ne pas avoir le vocabulaire pour comprendre ce que tu me dis, j'ai pas très bien compris l'histoire de parent vide et scale ^^, pourrait tu préciser s'il te plaît ?
Demain après midi je retourne en projet donc ton aide est très précieuse
J'avoue ne pas connaître ou ne pas avoir le vocabulaire pour comprendre ce que tu me dis, j'ai pas très bien compris l'histoire de parent vide et scale ^^, pourrait tu préciser s'il te plaît ?
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: problème rotation avec FixedJoint pour une porte.
Dans l'inspector, tu as le Component Transform de visible (le premier), il est composé des 3 transformations: position, rotation et échelle (scale). L'échelle te permet de modifier la taille de tes objets selon chaque axe. Il cause parfois des soucis s'il n'est pas uniforme, c'est à dire si toutes les valeurs ne sont pas les mêmes.
Je te conseille donc de créer un GameObject Empty sur lequel tu feras ton Joint, et mettre la porte (le modèle donc) enfant de ce GameObject. L'idée est d'avoir ce gameobject qui sert de Joint avec un scale à [1,1,1].
Je te conseille donc de créer un GameObject Empty sur lequel tu feras ton Joint, et mettre la porte (le modèle donc) enfant de ce GameObject. L'idée est d'avoir ce gameobject qui sert de Joint avec un scale à [1,1,1].
"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: problème rotation avec FixedJoint pour une porte.
Salut merci de ta réponse rapide comme toujours
Je comprends pas vraiment comment le scale du Joint de mon game object peut être à 1,1,1 car le cube créer pour faire le joint sortira du mur non ? Ou alors je ne comprends pas trop la démarche
J'ai effacer le Joint qui étais enfant de la porte et j'ai créer un cube que j'ai appelé Fixedjoint et auquel j'ai ajouté un component "Fixed Joint" Je l'ai mis parent de la porte et lui ai donné un scale de 1,1,1. J'ai connecté le FixedJoint avec la porte et la porte avec le Joint. Quand je démarre le "jeu" la porte tombe d'elle même, je pense que j'ai fait n'importe quoi mais je comprends pas trop comment fonctionne ce component.. Je ne sais pas non plus si je dois activer ou désactiver le mesh renderer ou le box collider du fixedJoint '-'
Ps: Je suis vraiment désolé de rien comprendre ^^
Je comprends pas vraiment comment le scale du Joint de mon game object peut être à 1,1,1 car le cube créer pour faire le joint sortira du mur non ? Ou alors je ne comprends pas trop la démarche
J'ai effacer le Joint qui étais enfant de la porte et j'ai créer un cube que j'ai appelé Fixedjoint et auquel j'ai ajouté un component "Fixed Joint" Je l'ai mis parent de la porte et lui ai donné un scale de 1,1,1. J'ai connecté le FixedJoint avec la porte et la porte avec le Joint. Quand je démarre le "jeu" la porte tombe d'elle même, je pense que j'ai fait n'importe quoi mais je comprends pas trop comment fonctionne ce component.. Je ne sais pas non plus si je dois activer ou désactiver le mesh renderer ou le box collider du fixedJoint '-'
Ps: Je suis vraiment désolé de rien comprendre ^^
Re: problème rotation avec FixedJoint pour une porte.
J'ai trouvé autant pour moi !!
Il me fallait juste coché les freeze position et rotation du rigidbody de mon FixedJoint ! Merci de ton aide ça marche parfaitement !
Maintenant j'ai un nouveau problème x)
étant donné que je dois pousser la porte avec le corps d'un personnage, on ne peux pas fermer la porte derrière sois ^^
Faire une animation serais le mieux mais au final j'ai pas réussi '-'
Il me fallait juste coché les freeze position et rotation du rigidbody de mon FixedJoint ! Merci de ton aide ça marche parfaitement !
Maintenant j'ai un nouveau problème x)
étant donné que je dois pousser la porte avec le corps d'un personnage, on ne peux pas fermer la porte derrière sois ^^
Faire une animation serais le mieux mais au final j'ai pas réussi '-'
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: problème rotation avec FixedJoint pour une porte.
Au temps pour moi, moi-même je m'y perds un peu ^^, je ne suis pas concentré. Je pensais que le FixedJoint devait agir sur l'enfant et pas sur lui-même. C'est ce que j'essayais de te dire.
Reprenons depuis le début:
- déjà, regarde ça:https://unity3d.com/fr/learn/tutorials/ ... list=17120. Tu verras que pour les portes, le mieux est le HingeJoint et pas le FixedJoint.
- testes un peu (normalement, ce n'est pas trop dur à mettre en place), il y a des tutos sur le net aussi. (mots clé: HingeJoint Unity ->
http://www.3dbuzz.com/training/view/uni ... inge-joint)
-EDIT- trop tard...
Pour l'animation. Mon avis est qu'il va falloir scripter un peu pour animer entre la rotation actuelle et la rotation initiale. Par contre, je ne sais pas trop comment gérer cela si cela doit être fait avec la physique.
Reprenons depuis le début:
- déjà, regarde ça:https://unity3d.com/fr/learn/tutorials/ ... list=17120. Tu verras que pour les portes, le mieux est le HingeJoint et pas le FixedJoint.
- testes un peu (normalement, ce n'est pas trop dur à mettre en place), il y a des tutos sur le net aussi. (mots clé: HingeJoint Unity ->
http://www.3dbuzz.com/training/view/uni ... inge-joint)
-EDIT- trop tard...
Pour l'animation. Mon avis est qu'il va falloir scripter un peu pour animer entre la rotation actuelle et la rotation initiale. Par contre, je ne sais pas trop comment gérer cela si cela doit être fait avec la physique.
"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: problème rotation avec FixedJoint pour une porte.
Pas de soucis
La vidéo d'unity officel je l'ai déjà regardé mais j'ai pas su en tirer les avantages et les inconvénients pour mes portes ^^
Et oui je pense devoir scripter mais peut on faire une animation "full-scrip" ? '-'
La vidéo d'unity officel je l'ai déjà regardé mais j'ai pas su en tirer les avantages et les inconvénients pour mes portes ^^
Et oui je pense devoir scripter mais peut on faire une animation "full-scrip" ? '-'
- boubouk50
- ModoGenereux
- Messages : 6225
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: problème rotation avec FixedJoint pour une porte.
Oui, avec les fonctions OnCollisionEnter (), OnCollisionStay () et OnCollisionExit (), et OnTriggerEnter (), OnTriggerStay () et OnTriggerExit () de la classe Collider, tu as les événements liés au contact avec la porte. Disons, que dans tu touches la porte, elle s'ouvre automatiquement ou manuellement par un Input, par animation ou script.
Ensuite, tu peux définir une zone grâce à un trigger, et lorsque tu sors de cette zone, tu fermes la porte, par animation ou script.
Ensuite, tu peux définir une zone grâce à un trigger, et lorsque tu sors de cette zone, tu fermes la porte, par animation ou script.
"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: problème rotation avec FixedJoint pour une porte.
ça roule je vais me renseigner sur ce que tu me dis là. Merci de ton aide !