Que ferait un vrai codeur ?

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
soumois
Messages : 32
Inscription : 12 Oct 2014 02:25

Re: Que ferait un vrai codeur ?

Message par soumois » 21 Nov 2014 12:59

Merci pour la correction alors ^^

yas180
Messages : 13
Inscription : 21 Oct 2014 14:27

Re: Que ferait un vrai codeur ?

Message par yas180 » 21 Nov 2014 19:03

Dsl :oops:, je remercie bien sûre tout ceux qui ont répondu à mon message (Alesk compris :D ) et aux messages que j'avais précedement posté

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Que ferait un vrai codeur ?

Message par Alesk » 21 Nov 2014 19:07

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é ;)

yas180
Messages : 13
Inscription : 21 Oct 2014 14:27

Re: Que ferait un vrai codeur ?

Message par yas180 » 21 Nov 2014 21:46

Sache en tout cas que je te remercie toi et toutes les personnes de ce site :D
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

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Que ferait un vrai codeur ?

Message par Alesk » 22 Nov 2014 00:19

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 :

Code : Tout sélectionner

Vector3.Angle (this.transform.position, Vector3.up);
ç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 :

Code : Tout sélectionner

Vector3.Angle (this.transform.up, Vector3.up);
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.

yas180
Messages : 13
Inscription : 21 Oct 2014 14:27

Re: Que ferait un vrai codeur ?

Message par yas180 » 22 Nov 2014 16:23

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 ? :D

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Que ferait un vrai codeur ?

Message par Alesk » 22 Nov 2014 22:52

Comment détectes-tu la collision avec les montagnes ?

Répondre

Revenir vers « Scripting »