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:
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 (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.
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.