Changer direction controller selon angle de la caméra

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
simiji
Messages : 21
Inscription : 06 Avr 2017 16:51

Changer direction controller selon angle de la caméra

Message par simiji » 08 Sep 2020 16:23

ok je m'explique ; j'ai créé une scène avec une caméra qui tourne à 360 ° autour du personnage et de la scène.

Le problème est que lorsque je change d'angle de vue, le personnage garde les mêmes commandes, donc la gauche et la droite sont inversées dès que la caméra tourne.

j'aimerais faire en sorte que les commandes du perso évolue selon l'angle de vue mais je n'ai pas encore trouvé de solution... j'ai essayé lookAt() mais cela ne règle pas le problème.

Auriez-vous une idée de comment faire ?
Pièces jointes
help.jpg
help.jpg (14.16 Kio) Consulté 1615 fois

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Changer direction controller selon angle de la caméra

Message par boubouk50 » 08 Sep 2020 17:13

Il te faut gérer les déplacements en fonction des axes locaux de la caméra, au lieu de ceux du personnage.

Attention, il ne faut pas prendre directement les axes locaux, mais une projection normalisée sur le plan World, sinon les axes forward et - forward seront inclinés vers le bas et le haut (respectivement) car la caméra est en hauteur par rapport au personnage.
"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

simiji
Messages : 21
Inscription : 06 Avr 2017 16:51

Re: Changer direction controller selon angle de la caméra

Message par simiji » 08 Sep 2020 18:49

boubouk50 a écrit :
08 Sep 2020 17:13
Il te faut gérer les déplacements en fonction des axes locaux de la caméra, au lieu de ceux du personnage.

Attention, il ne faut pas prendre directement les axes locaux, mais une projection normalisée sur le plan World, sinon les axes forward et - forward seront inclinés vers le bas et le haut (respectivement) car la caméra est en hauteur par rapport au personnage.
Merci pour ta réponse :D

Comment peut-on faire ça ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Changer direction controller selon angle de la caméra

Message par boubouk50 » 09 Sep 2020 08:48

Je t'ai expliqué le principe.
Les axes locaux de la camera: soit tu fais une référence à la caméra et tu choppes le forward et le right, soit ta caméra est la caméra principale et tu as directement accès via Camera.main.
Pour une projection de vecteur sur un plan, tu as une méthode toute faite depuis la classe Vector3: ProjectOnPlane
Enfin, pour normaliser, tu as Vector3.Normalize.
"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

Répondre

Revenir vers « Unity le logiciel »