First off, I have been using Unity for a while but I am new to physics and stuff so keep your answer simple. I am creating a building block game for Android. For the physics of the falling blocks, I am, of course, using RigidBody. However the cubes that are supposed to tumble normally are flying up in the air on the Y axis, collision or no collision. BoxCollider is turned on. The cube starts in the center and is supposed to fall to the MeshCollider floor, but it instead flies up in the air when I click ‘Play’. The RigidBody values are at default. Use Gravity is selected. Is Kinematic makes no difference. Help! I cannot find a solution to this. Thank you!
first of all, check your gravity, go to, Edit->project settings-> physics → here you will see gravity(it should be -9.81) if it’s not then change it.
If anyone is reading this and do not find the answer above, I banged my head for an hour before I realized this:
If you have a “Ground object” that is not something like a cube or a plane, but instead, like me, a cylinder, you end up in this exact situation.
The collider on the default Unity primitive cylinder are not correct at the top, the collider are approximated as a capsule, if you make it 1 unit high, but 1000 units in radius, you will have a 1000 units high dome in the sky.
This will make unity have the rigid bodies “float to the sky”, towards the outside of the collider
Side-note: Why would you choose a Cylinder as ground?
Because you don’t se any difference on the horizon as you would with a non-infinite cube or plane (wish are square on top, so you may be annoyed with seeing the square corners).
I actually had this same thing happen to me. The problem was that the object with my rigidbody also had a player controller on it, which was changing the velocities of my object, also messing up the gravity. Do you have any component or script on your object that is changing its velocities?