[RESOLU] Différences entre Transform.position et Transform.translate

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

[RESOLU] Différences entre Transform.position et Transform.translate

Message par ced_le_dingue » 30 Sep 2020 18:06

Bonjour à tous,

Je suis en train de coder un déplacement tout simple d'un cube, mais je sais pas quoi utiliser entre les 2... (je ferai ça aussi sur l'axe horizontal mais là j'ai pris que l'axe vertical pour le principe/exemple)

Code : Tout sélectionner

//Avec transform.position 
 float nouvellePositionZ = transform.position.z + (Input.GetAxis("Vertical") * VitesseCube * Time.deltaTime);
 transform.position = new Vector3(transform.position.x, transform.position.y, nouvellePositionZ);

//Avec transform.translate
 transform.Translate(Vector3.forward * Input.GetAxis("Vertical") * VitesseCube * Time.deltaTime);
Dans quels cas utiliser l'un et dans quels cas utiliser l'autre je n'arrive pas à saisir?

Je précise qu'à terme, je vais faire bouger mon cube à l'aide du joystick gauche et monter la caméra de haut en bas avec le joystick droit (comme un fps)

Merci pour vos conseils et vos lumières :)
Dernière édition par ced_le_dingue le 01 Oct 2020 10:30, édité 1 fois.

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Différences entre Transform.position et Transform.translate

Message par Max » 30 Sep 2020 18:17

Bonsoir,

La doc est ton amie, ne l'oublie jamais. Transform.position et Transform.Translate().
Transform.position est une propriété, qui te permet de connaitre la position dans l'espace de ton GameObject. Position que tu peux changer en modifiant ses paramètres (x,y,z).
Translate est une Méthode de la classe Transform permettant de définir le déplacement en translation d'un GameObject, que tu va définir sur les 3 axes.

Dans le code que tu donnes, la première solution basé sur la propriété position n"est en fait qu'une fonction de translation codé par tes soins.
Image
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

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

Re: Différences entre Transform.position et Transform.translate

Message par ced_le_dingue » 30 Sep 2020 18:33

Salut Max,

Merci pour ta réponse. Oui mais la doc étant en anglais ça m'a pas bien aidé à comprendre (je suis très mauvais en anglais; je sais c'est un comble si je veux apprendre Unity) ce dilemme que je me pose: lorsque que l'on souhaite bouger l'objet, quel est la différence entre les 2 façons de faire... Du coup d'accord, il y a la distinction entre propriété et méthode c'est entendu. Mais au delà de ça, ça fait la même chose non? Il n'y a donc aucun inconvénient à toujours faire un transform.position plutôt qu'un translate ou inversement?

Parce que j'ai bien compris que la propriété de position sera changée dans les 2 cas c'est pour ça...

(Désolé si je ne saisis pas bien)

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Différences entre Transform.position et Transform.translate

Message par Max » 30 Sep 2020 18:37

Ben je répondrais en te disant que si tu veux faire faire une translation à ton objet, utilise Translate.
Principe fondamental: toujours faire simple.
Image
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

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

Re: Différences entre Transform.position et Transform.translate

Message par ced_le_dingue » 30 Sep 2020 18:38

Ok pas de soucis, je vais utiliser translate pour faire simple alors ;-)
Merci Max

Répondre

Revenir vers « Scripting »