La gravité dans le moteur physique Unity ne va que dans une seule direction et est contrôlée dans le menu Physique du menu Edition-> Paramètres du projet.
Si vous voulez faire autre chose que cela, vous devrez implémenter votre propre gravité.
Fondamentalement, vous pouvez ajouter un collisionneur de sphères sur l'objet que vous souhaitez être le centre de gravité. Le collisionneur doit englober toute la zone où vous souhaitez que les objets soient affectés par la gravité de cet objet. Chaque fois qu'un objet entre en collision avec cette "sphère d'influence", vous lui appliquez une force. Vous continuez à lui appliquer une force tant qu'elle se trouve à l'intérieur de la sphère d'influence.
La constante gravitationnelle que vous utilisez peut être modifiée par vous, mais celle standard utilisée pour les calculs dans le monde réel est:
F = Gm1m2 / r2
Épelé c'est:
Force = constante gravitationnelle * masse de l'objet 1 * masse de l'objet 2 / distance entre les deux objets au carré.
Notez que la constante gravitationnelle n'est pas 9,81. C'est l'accélération causée par la gravité à la surface de la Terre.
Demandez à la planète / grande sphère avec un collisionneur de cercle, donnez-lui un enfant. Maintenant, la planète doit être étiquetée planète ou objet cosmique statique, et l'enfant doit être étiqueté Zone d'influence. Maintenant, le petit objet devrait avoir un corps rigide et une sphère avec un isTrigger.
Mettez un script sur la planète avec un déclencheur d'entrée / entrée, s'il s'agit d'une sphère d'influence, il doit être tiré vers cela.
Sinon, vous pouvez le faire dans l'autre sens. Mais dans tous les cas, ce serait probablement mieux puisque vous voulez très probablement rendre l'attraction gravitationnelle différente d'une planète à l'autre.
la source
Ce que d'autres ont dit, la gravité sur l'unité n'est que dans une certaine direction, alors peut-être devriez-vous plutôt désactiver complètement la gravité et scénariser une force qui déplace la petite sphère vers l'énorme.
la source