Que ferait un vrai codeur ?
Re: Que ferait un vrai codeur ?
Merci pour la correction alors ^^
Re: Que ferait un vrai codeur ?
Dsl , je remercie bien sûre tout ceux qui ont répondu à mon message (Alesk compris ) et aux messages que j'avais précedement posté
Re: Que ferait un vrai codeur ?
C'est pas tant les remerciements que j'attends, mais surtout de savoir si tu as compris ma réponse et si ça t'a décoincé
Re: Que ferait un vrai codeur ?
Sache en tout cas que je te remercie toi et toutes les personnes de ce site
Maintenant en ce qui concerne Vector3.Angle j'ai écrit : Vector3.Angle (this.transform.position, Vector3.up); Je l'ai afficher sur la console mais bêtement je ne sais pas à quel angle cela correspond. De plus j'ai cherche sur internet ce qu'est une normal et je ne comprend pas ce qu'est une normal dans notre cas ? Si tu pouvais m'expliquer
Maintenant en ce qui concerne Vector3.Angle j'ai écrit : Vector3.Angle (this.transform.position, Vector3.up); Je l'ai afficher sur la console mais bêtement je ne sais pas à quel angle cela correspond. De plus j'ai cherche sur internet ce qu'est une normal et je ne comprend pas ce qu'est une normal dans notre cas ? Si tu pouvais m'expliquer
Re: Que ferait un vrai codeur ?
Pour commencer : http://fr.wikipedia.org/wiki/Normale_%C3%A0_une_surface
En 3D la "normale" est une droite perpendiculaire à un plan, et concrètement ça nous sert à repérer l'orientation d'un triangle, dans quelle direction pointe sa face visible.
Une normale est toujours un vecteur unitaire, c'est à dire que sa longueur ( vecteur.magnitude dans Unity) est toujours égale à 1.
En gros, lorsqu'on bosse en 3D on utilise les vecteurs 3D de deux façons : soit pour définir une position dans l'espace (vecteur de position) soit pour définir une direction (vecteur directeur)
Par exemple avec le vecteur 1,0,0
a) si on le considère comme vecteur de position, ça veut dire qu'il représente la position à une unité sur l'axe X, à la droite du point 0 du repère actuel
b) si on le considère comme un vecteur directeur, il indique alors une direction : le sens positif sur l'axe X (donc vers la droite), mais sans faire référence à une position précise dans l'espace.
Il faut bien comprendre cette différence, car c'est très important de ne pas se les mélanger.
Ainsi, lorsque tu fais :
ça n'a pas de sens car this.transform.position est un vecteur de position et Vector3.up est un vecteur directeur.
Or, pour connaitre l'angle entre deux vecteurs, il faut que ça soit deux vecteurs directeurs.
Il faudrait donc faire :
Et là tu obtiendras l'angle entre l'axe vertical de ton GameObject et l'axe vertical du world 3D.
Ici Vector3.up est toujours égal à 0,1,0, par contre transform.up peut être différent si jamais tu as fait pivoter ton gameobject.
En 3D la "normale" est une droite perpendiculaire à un plan, et concrètement ça nous sert à repérer l'orientation d'un triangle, dans quelle direction pointe sa face visible.
Une normale est toujours un vecteur unitaire, c'est à dire que sa longueur ( vecteur.magnitude dans Unity) est toujours égale à 1.
En gros, lorsqu'on bosse en 3D on utilise les vecteurs 3D de deux façons : soit pour définir une position dans l'espace (vecteur de position) soit pour définir une direction (vecteur directeur)
Par exemple avec le vecteur 1,0,0
a) si on le considère comme vecteur de position, ça veut dire qu'il représente la position à une unité sur l'axe X, à la droite du point 0 du repère actuel
b) si on le considère comme un vecteur directeur, il indique alors une direction : le sens positif sur l'axe X (donc vers la droite), mais sans faire référence à une position précise dans l'espace.
Il faut bien comprendre cette différence, car c'est très important de ne pas se les mélanger.
Ainsi, lorsque tu fais :
Code : Tout sélectionner
Vector3.Angle (this.transform.position, Vector3.up);
Or, pour connaitre l'angle entre deux vecteurs, il faut que ça soit deux vecteurs directeurs.
Il faudrait donc faire :
Code : Tout sélectionner
Vector3.Angle (this.transform.up, Vector3.up);
Ici Vector3.up est toujours égal à 0,1,0, par contre transform.up peut être différent si jamais tu as fait pivoter ton gameobject.
Re: Que ferait un vrai codeur ?
Là j'ai compris, le truc c'est que j'ai gelé mes rotations sur les trois axes du coup les angles restent constant, cette technique ne peut donc pas m'aider à empêcher mon personnage d'escalader mes montagnes. J'avais penser récupérer la hauteur du sol du terrain mais je n'ai pas trouver de variable dans l'API. Une autre idée ?
Re: Que ferait un vrai codeur ?
Comment détectes-tu la collision avec les montagnes ?