[Résolu]gravité Unity vs gravité maison

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Istrella
Messages : 45
Inscription : 25 Juin 2013 23:08

[Résolu]gravité Unity vs gravité maison

Message par Istrella » 15 Déc 2014 20:50

Bonjour !

Voilà, j'ai un problème avec ma "gravité-maison", et je ne comprends pas d’où ça vient.
J'ai une planète et je souhaite que la force de gravité vienne du centre de celle-ci.

En simplifiant au maximum, j'ai placé un cube au-dessus d'un autre, l'un étant enfant de l'autre.
J'ai attaché un Rigidbody au cube parent, ainsi qu'un simple script :

Code : Tout sélectionner

	public Transform planet;
	public float gravity = 9.81f;
	
	void FixedUpdate () {
		Vector3 direction = planet.position - transform.position;
		rigidbody.AddForce(direction.normalized * gravity);
	}
et c'est tout ! (pas de character controller ni d'autres contrôles maison)

j'ai placé le tout à quelque distance de ma planète.

Problème : Lorsque je fais play la gravité fonctionne bien, mais mes cubes se mettent à "vibrer". Leur position relative ne sont pas exactement les mêmes à chaque frame, je suppose.

Lorsque j'utilise un CharacterController classique, je n'ai pas ce souci. Mais si j'attache un autre de mes scripts maison pour rajouter des contrôles de déplacement ou d'alignement avec le sol, c'est encore pire...

Quelqu'un a une idée d’où peut venir ce problème ?

Merci d'avance pour votre aide !

Istr
Dernière édition par Istrella le 17 Déc 2014 00:05, édité 1 fois.

Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

Re: gravité Unity vs gravité maison

Message par Titan » 16 Déc 2014 14:08

C'est pas un problème simple.
Tant que tu applique des forces, ton rigidbody ne va pas "s'endormir" et donc continuer de bouger avec les approximation de la physique en plus de coûter d'importante ressource. Il faut donc que tu arrête d'appeler ton AddForce lorsque l'objet lorsque tu le considère immobile.
____________________________________________
Hop Boy

Istrella
Messages : 45
Inscription : 25 Juin 2013 23:08

Re: gravité Unity vs gravité maison

Message par Istrella » 16 Déc 2014 14:38

Merci de ta réponse
Le problème, c'est que les cubes bougent les uns par rapport aux autres alors que l'objet est (et doit) être en mouvement.
Autrement dit, lorsqu'ils sont en train de "tomber" vers la planète.

Hors ils devraient garder leur position relative l'un par rapport à l'autre, puisque l'un est l'enfant de l'autre et que la force n'est appliquée que sur l'objet parent.


Istrella
Messages : 45
Inscription : 25 Juin 2013 23:08

Re: gravité Unity vs gravité maison

Message par Istrella » 17 Déc 2014 00:05

Merci pour ces liens !
J'ai pu y trouver un début de solution : j'avais peut-être un peu trop poussé la taille de ma planète, du coup les approximations de position devenaient certainement trop visibles avec des distances trop grandes.
Je suis comme ça moi, je vois tout de suite trop les choses en grand ! ;-)

Avec une planète de taille plus modeste, le problème disparait en grande partie, et comme ce n'est pas un souci pour les besoins de mon projet je n'ai pas besoin de chercher plus loin.

Merci de votre aide !

Répondre

Revenir vers « Scripting »