Code

Comment définir la valeur de Transform.position.x – C# – Tuto Unity

Quand on développe un jeu en 3D sur Unity, on doit souvent modifier la position d’un GameObject.

Pour cela, on peut modifier la propriété position du composant Transform, attaché à ce GameObject.

Transform.position

Transform.position est la position dans l’espace global (WorldSpace) du Transform.
C’est accessible dans l’éditeur Unity et via des scripts.
On peut modifier cette valeur pour déplacer un GameObject.
Et on peut accéder à cette valeur pour connaître la position du GameObject dans l’espace global 3D.

Exemple :


transform.position = new Vector3(7f, 0, 5f);

 

Mais imaginons que nous voulions seulement modifier x, comment pouvons-nous faire ?

Ce qu’il ne faut pas faire

Modifier directement Transform.position.x :


//A ne surtout pas faire !!!
transform.position.x = 7.0f;

Si vous faites ceci vous aurez l’erreur suivante:

Assets\ScriptA.cs(16,9): error CS1612: Cannot modify the return value of ‘Transform.position’ because it is not a variable

Traduction:

Impossible de modifier la valeur de retour de ‘Transform.position’ car il ne s’agit pas d’une variable

Unity nous dit que l’on ne peut pas modifier directement les valeurs de ‘Transform.position’ (x,y,z).

Solution

La solution consiste à utiliser un Vector3.
x sera égale à la valeur désirée. Pour y et z, on renseigne simplement les valeurs actuelles de ‘Transform.position’.

transform.position = new Vector3(7f, transform.position.y, transform.position.z);

Recevez les dernières actus

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut