Cómo revertir la gravedad en la Unidad

Estoy tratando de descubrir cómo la secuencia de commands de inversión de gravedad en la colisión con un object. ¿Cómo puedo revertir la gravedad?

Si es 2D, simplemente puede usar: rigidbody2D.gravityScale = -1; . Etiquetaste la pregunta 2D así que esto debería ser todo lo que necesitas hacer. Para alternar isntead de simplemente establecer, puede cambiarlo a rigidbody2D.gravityScale *= -1;

Si es 3D y quieres que toda la escena tenga la gravedad invertida, puedes hacer: Physics.gravity = new Vector3(0, -1.0F, 0);

Si es 3D y quieres que solo ese único object tenga su gravedad invertida, tendrás que hacer algo manualmente como @SteakOverflow señala en su respuesta. Creo que lo que tendrá que hacer es agregar un rigidbody.AddForce constante. rigidbody.AddForce llama a su FixedUpdateFunction .

Debería intentar deshabilitar la propiedad de Gravedad de uso del cuerpo rígido cuando ocurra la colisión y usar AddForce para falsificar su gravedad ascendente, más o less como en la documentation de AddForce .