Page 1 sur 1

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

Publié : 30 Sep 2020 18:06
par ced_le_dingue
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 :)

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

Publié : 30 Sep 2020 18:17
par Max
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.

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

Publié : 30 Sep 2020 18:33
par ced_le_dingue
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)

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

Publié : 30 Sep 2020 18:37
par Max
Ben je répondrais en te disant que si tu veux faire faire une translation à ton objet, utilise Translate.
Principe fondamental: toujours faire simple.

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

Publié : 30 Sep 2020 18:38
par ced_le_dingue
Ok pas de soucis, je vais utiliser translate pour faire simple alors ;-)
Merci Max