Page 1 sur 1

[RESOLU]Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 09:57
par Tarquin38
Bonjour,

J'ai un cube et j'aimerais récupéré les coordonnées du point de son mesh que je sélectionne.
J'arrive à récupérer les coordonnées mais lorsque j'effectue une rotation sur le cube, elles restent les mêmes que sans la rotation.

Comment ajouter la rotation à cette position ?

Voila ce que j'ai fait:

Code : Tout sélectionner

meshPoint = cube.transform.position + selectedPoint;
selectedPoint étant les coordonnées local du point du mesh ((1, 1, -1) par exemple)

merci d'avance,

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 10:33
par boubouk50
Salut,
c'est normal pour des coordonnées locales. Elles sont calculées dans le repère du cube, elles seront toujours au même endroit par rapport au pivot. Il faut donc récupérer les coordonnées World et non locales.
Pour ce faire, il faut convertir les coordonnées dans le bon repère grâce à TransformPoint.

Code : Tout sélectionner

meshPoint = cube.transform.position + cube.transform.TransformPoint (selectedPoint);

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 11:22
par Tarquin38
Merci pour ta réponse,

j'ai essayer ta solution mais mon point dans les coordonnées world ne correspond pas au point de mon mesh.
Peut-être encore un problème de repère ?

J'ai essayer de faire TrasformPoint sur le transform du cube pour tout mettre dans le repère world.

Voila les positions de mes points:
Capture.PNG
Capture.PNG (88.25 Kio) Consulté 2961 fois

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 11:28
par boubouk50
Euh... Et que veux-tu que je fasse de ces positions??? Je ne sais même pas ce que tu as écrit dans tes logs... Il me faut le code avec, au minimum, que je sache ce que tu fais.

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 11:36
par Tarquin38
Oui désolé voila mon code:

Code : Tout sélectionner

Vector3 selectedPoint = OnModelClick.GetSelectedPoint();
Vector3 selectedPointInWorldSpace = model.transform.position + model.transform.TransformPoint(selectedPoint);
Vector3 modelPositionInWorldSpace = transform.TransformPoint(model.transform.position);

Debug.Log("selected : " + selectedPoint.ToString("F3"));
Debug.Log("selected in world : " + selectedPointInWorldSpace.ToString("F3"));
Debug.Log("position du cube : " + model.transform.position.ToString("F3"));
Debug.Log("position du cube World: " + modelPositionInWorldSpace.ToString("F3"));

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 11:45
par boubouk50
C'est moi qui suis mal réveillé... j'ai bêtement adapté ton code.

Code : Tout sélectionner

meshPoint = cube.transform.TransformPoint (selectedPoint);
Pas besoin d'additionner quoi que ce soit puisque TransformPoint te renvoie directement la position World.

Re: Récuperer la position d'un point dans un mesh

Publié : 17 Mai 2018 12:07
par Tarquin38
Ok, ca marche.

J'avais aussi un problème de scale quand je récupérais mon point sélectionné.

merci beaucoup pour ton aide.