[RESOLU] Caméra tourne sur Z

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
ced_le_dingue
Messages : 70
Inscription : 29 Oct 2019 21:58

[RESOLU] Caméra tourne sur Z

Message par ced_le_dingue » 01 Oct 2020 10:30

Bonjour à tous,

J'ai une petite chose que je voudrai éviter lorsque je tourne ma caméra autour d'un objet.

1) J'ai placé ma caméra dans un empty pour la faire tourner autour de celui ci :
Image
2) Pour ce faire, j'ai fait ce code:

Code : Tout sélectionner

void Update()
{
GameObject.Find("RotationCameraCube").GetComponent<Transform>().Rotate(Input.GetAxis("JoystickVerticalRight") * 300f * Time.deltaTime, 0, 0);
GameObject.Find("RotationCameraCube").GetComponent<Transform>().Rotate(0, Input.GetAxis("JoystickHorizontalRight") * 300f * Time.deltaTime, 0);
}
3) Voila le résultat, ça marche sauf que j'imagine que je n'utilise pas les bonnes choses pour le faire car je voudrai, à la manière d'un FPS, que ma caméra ne parte pas en vrille sur l'axe Z:
Image

Merci beaucoup pour votre aide :)

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Caméra tourne sur Z

Message par jmhoubre » 01 Oct 2020 11:01

Bonjour,

déjà, met ton composant en cache, c'est une très mauvaise pratique que de faire des Find dans une fonction Update.

Code : Tout sélectionner

private Transform rotationCube = null;

private void Start () {
	rotationCube = GameObject.Find("RotationCameraCube").GetComponent<Transform>();
}

private void Update () {
	Vector3 input;
	input = new Vector3 (Input.GetAxis("JoystickVerticalRight"), Input.GetAxis("JoystickHorizontalRight"), 0f);
	input *= 300f * Time.deltaTime;
	rotationCube.Rotate (input);
}
Pour ta question, je vais regarder de plus près.
Dernière édition par jmhoubre le 01 Oct 2020 11:07, édité 1 fois.

ced_le_dingue
Messages : 70
Inscription : 29 Oct 2019 21:58

Re: Caméra tourne sur Z

Message par ced_le_dingue » 01 Oct 2020 11:03

Salut Jm,

Super merci pour ça, je vais modifier ma façon de faire alors et faire comme tu m'a dit.

D'accord parfait merci beaucoup ;)

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Caméra tourne sur Z

Message par jmhoubre » 01 Oct 2020 11:11

Quelques questions :
- le script est sur quel objet ?
Dernière édition par jmhoubre le 01 Oct 2020 11:17, édité 1 fois.

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Caméra tourne sur Z

Message par jmhoubre » 01 Oct 2020 11:13

Re,

j'ai mis le script sur l'objet vide.
Comme je n'ai pas de Joystick, j'utilise le clavier, mais cela fonctionne.
Dernière édition par jmhoubre le 01 Oct 2020 11:20, édité 1 fois.

ced_le_dingue
Messages : 70
Inscription : 29 Oct 2019 21:58

Re: Caméra tourne sur Z

Message par ced_le_dingue » 01 Oct 2020 11:17

Le script est sur le cube. ça a une importance? :(

Pour les input j'ai inversé les axes tu as raison... je me suis emmêlé pour rien à ce niveau là

ça fonctionne c'est à dire qu'en mettant le script sur la caméra plutot que sur le cube ça règle le problème?

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Caméra tourne sur Z

Message par jmhoubre » 01 Oct 2020 11:25

Si ton souci est réglé, passe le sujet en [Résolu].

Sinon, précise le problème, car chez moi cela fonctionne correctement.

Et oui, on peut mettre le script sur le cube. Comme tu cherches l'objet RotationCameraCube, c'est à celui-ci que s'applique la fonction Rotate (). Mais ce n'est pas trop logique. Le script devrait être sur l'objet
RotationCameraCube.

Autre petit conseil, quand tu scriptes, essaie de décomposer comme je l'ai fait : on récupère l'input, on le multiplie, puis on l'applique dans une rotation. C'est plus simple à lire, et surtout à relire, donc à debugger. Et je ne pense pas qu'on perde beaucoup de cycles de processeur à faire cela.

ced_le_dingue
Messages : 70
Inscription : 29 Oct 2019 21:58

Re: Caméra tourne sur Z

Message par ced_le_dingue » 01 Oct 2020 11:32

Non malheureusement j'ai refait le code comme tu me l'a suggéré, mais le resultat est identique ça tourne toujours comme sur le gif que j'ai mis plus haut (je me sert des joystick n'oublions pas :lol: )

Je suis en train de regarder là et je crois qu'il s'agit d'une histoire de Lookat, je vais regarder ça.

(Oui pas de soucis je m'habituerai à faire comme ça tu as raison)

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Caméra tourne sur Z

Message par jmhoubre » 01 Oct 2020 11:50

Si tu bouges sur l'axe horizontal, et seulement après sur l'axe vertical, ça donne quoi ?
Parce que si tu fais une rotation d'axe x et en même temps d'axe y, ça donne une rotation d'axe z il me semble (je vais vérifier après le repas).

ced_le_dingue
Messages : 70
Inscription : 29 Oct 2019 21:58

Re: Caméra tourne sur Z

Message par ced_le_dingue » 01 Oct 2020 12:07

Je ne sais pas si ça rend très bien de les faire l'un après l'autre (je prends comme modèle la caméra d'un jouer dans Call Of Duty, on peut les bouger en même temps mais ça regarde toujours en face, du coup c'est pour ça que je crois deviner que Lookat peut régler mon soucis, je ne sais pas....)

Pas de soucis merci jm, prends ton temps t'inquiètes pas. Je vais manger aussi et ensuite j'essaye aussi de mon coté (avec Lookat notamment)

Petit update: au final, utiliser un Character controller ne serait il pas la solution? (je ne m'en suis jamais servit encore, faudra que j'apprenne du coup)

Répondre

Revenir vers « Scripting »