localScale modifie aussi la position...

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
obefa
Messages : 32
Inscription : 24 Fév 2012 11:43
Localisation : Paris
Contact :

localScale modifie aussi la position...

Message par obefa » 03 Mars 2015 14:04

Bonjour,

Un premier script instancie un prefab dans la scène. Sur ce prefab j'ai un script pour modifier sa taille, du type :

Code : Tout sélectionner

	void OnMouseDown() {
		transform.localScale += new Vector3(0.1F, 0, 0);
	}
le problème c'est que la position du préfab est aussi modifiée en même temps que sa taille...
Je ne comprend pas trop cette notion de localScale je pense... pourquoi un " local" scale et non un global sur le gameobject ? qui est la parent d'un prefab instancié dans la scène ? la scène elle-même ?

merci :)

Avatar de l’utilisateur
NDrew
Messages : 581
Inscription : 25 Oct 2013 15:14
Localisation : Clermont-Ferrand

Re: localScale modifie aussi la position...

Message par NDrew » 03 Mars 2015 14:16

le local est local, le "global" scale est la somme des scale en remontant les parents. Donc on enfant en localScale 1 sous un parent en localScale 2 et en "global" scale 2. Un objet en localScale 0.5 enfant d'un objet localScale 3.0 serait donc en "global" scale 1.5

pareil pour les positions

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6216
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: localScale modifie aussi la position...

Message par boubouk50 » 03 Mars 2015 14:29

Le scale est relatif au parent. Ce qu'il faut voir c'est par rapport à quel point ce scale est fait. Si le centre de scale n'est pas centré sur l'objet alors celui-ci ce déplacera. (Je dirai qu'il devrait se faire par rapport à son pivot)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

obefa
Messages : 32
Inscription : 24 Fév 2012 11:43
Localisation : Paris
Contact :

Re: localScale modifie aussi la position...

Message par obefa » 03 Mars 2015 15:11

humm je ne comprends toujours pas...

mon point de pivot du prefab est au bon endroit (un coin du cube). Quand je modifie le scale dans l'inspector de mon préfab instancié (en mode Game), cela fonctionne très bien mais avec la fonction localScale, le prefab se déplace...

J'ai aussi essayé avec un prefab tout simple, un cube. le résultat est le même..

ou autre question : si vous aviez juste un cube dans la scène, quel script lui attacher pour modifier son échelle sur un événement OnMouseDown par exemple ?

obefa
Messages : 32
Inscription : 24 Fév 2012 11:43
Localisation : Paris
Contact :

Re: localScale modifie aussi la position...

Message par obefa » 03 Mars 2015 15:33

en fait c'est bon !

ça vient d'une autre fonction onMouseDrag que j'utilisais pour déplacer le prefab. Rien à voir avec le locaScale finalement. Enfin problème de compatibilité entre cette fonction et le localScale.

Répondre

Revenir vers « Scripting »