Page 1 sur 1

problème de position

Publié : 30 Nov 2021 20:49
par pingous
Bonjour tout le monde,
j'aimerais juste savoir pourquoi les 2 scripts suivant ne placent pas le GameObject Test au même endroit (il se décale sur l'axe des x je crois pour la deuxième méthode)

script 1:

Code : Tout sélectionner

GameObject test = GameObject.CreatePrimitive(PrimitiveType.Sphere);
test.transform.position = transform.position;
script 2:

Code : Tout sélectionner

GameObject test = GameObject.CreatePrimitive(PrimitiveType.Sphere);
test.transform.parent = transform;
test.transform.position = transform.position - transform.position;
Merci d'avance.

Re: problème de position

Publié : 01 Déc 2021 01:12
par jmhoubre
Bonsoir,

par curiosité, j'ai fait le test, les 2 sphères sont en (0, 0, 0), c'est-à-dire la position de mes empty porteurs des scripts.

Les deux scripts sont sur un objet qui a quelle position ?
Et pour les 2 scripts, quelle est la position de test ?

Tu te rends compte que faire :

Code : Tout sélectionner

test.transform.position = transform.position - transform.position;
c'est comme faire :

Code : Tout sélectionner

int a = 4 - 4;

Re: problème de position

Publié : 01 Déc 2021 19:56
par pingous
oui je sais bien que que transform.position - transform.position donne 0 dans tout les cas mais c'est juste que mon script de base est fait pour créer une icosphère autour de l'empty game object sur lequel est le script.

du coup je calcule les coordonnées des sommets de l'icosphère pour afficher les faces, quand je ne donne pas de parent à ces faces elles sont bien placées au bon endroit.
Mais quand j'essaie de définir le gameobject comme parent et que du coup je soustrais la position du gameobject parent pour que la position des faces ne changent pas et bien elles sont décalées.


J'ai fait le gameobject test pour voir si les deux méthodes suivantes donnaient la même chose:
-donner la position du gameobject vide à mon gemobject test sans lui donner de parent
-définir le parent du gameobject test comme le gameobject vide et mettre sa position à zero

Et du coup les deux scripts ne donnaient pas la même chose comme je l'ai dit dans mon premier post.

désolé si je n'étais pas clair j'essaie de l'être le plus possible,
Merci d'avance.

avec la première méthode: (la capsule entourée en rouge représente les positions successives du gamobject test)
Image

avec la 2e méthode:
Image

Re: problème de position

Publié : 02 Déc 2021 01:08
par jmhoubre
La je ne vois pas. Une fois de plus, ceux qui répondent ne sont pas devins.

Re: problème de position

Publié : 03 Déc 2021 20:45
par pingous
Bah mon problème c'est juste que quand je fais:

test.transform.position = transform.position;

et

test.transform.parent = transform;
test.tranform.position = Vector3.zero;

avec le gameobject vide porteur du script qui est en mouvement,
et bien ça ne donne pas la même chose.

Et ma question c'est : est-ce normal?
merci d'avance

Re: problème de position

Publié : 04 Déc 2021 18:03
par Max
Bonjour,
pingous a écrit :
03 Déc 2021 20:45
test.transform.parent = transform;
test.tranform.position = Vector3.zero;
tu as essayé en passant par localPosition ?

Code : Tout sélectionner

        test.transform.parent = transform;
        test.transform.localPosition = Vector3.zero;

Re: problème de position

Publié : 05 Déc 2021 15:43
par pingous
Non j'avais pas essayé et merci beaucoup ça marche maintenant :-D :-D

mais en fait j'ai trouvé comment résoudre le problème d'une autre façon entre temps.
C'est juste que le gameobject vide n'était pas en (0,0,0) au début.
Du coup j'ai juste à rajouter sa position initiale aux Gameobject enfants et tout va bien. ::d ::d