Why does AddForceAtPosition need a collider to work properly

I’m trying to make a ship float in water and noticed that when I forgot to add a collider to the ship, AddForceAtPosition resulted in the ship rotating around uncontrollably. I just accidentally noticed that adding on a BoxCollider fixed the issue without modifying anything else however, I haven’t seen anything like this mentioned in the docs or discussed in any threads. Can someone explain why this happens?

What is supposed to happen if you were to poke a ghost? :wink:

Where does the ghost, or ship, begin or end. What physical volume in space does it have? How is its weight distributed?

Without a collider from the point of physics the object is either physically non-existant or its a singularity (a single point in space). For physics to correctly apply a force at position to an object, it needs to know what that position is in terms of the mass distribution of the object. Did you push the rear end of the ship or close to the center? Without a collider the physics simulation cannot know that (and no, it does not look at the mesh unless you add a mesh collider).

Actually, if a game object has neither a collider nor a physics body it simply does not participate in the physics simulation.

Inertia, Center of Mass, etc. All these are defined using the sum of all colliders attached to a Rigidbody. Without them, it’s just a point in space that moves around not interacting with things.

Makes sense, thanks. I didn’t really think about this as things seemed to work fine when I simply used AddForce. Now that I think about it, does the ship roll uncontrollably because the volume is essentially 0 and the leverage is huge (not sure about the physics terms in english but i mean it creates huge torque because the distance between the rotated object and where the force is applied is quite large)?

Probably because without colliders you’re getting a default Unity - Scripting API: Rigidbody.inertiaTensorRotation

You can of course set this and other things to what you like if you don’t need colliders.

Mmm interesting stuff, thanks :smile: