3 hours ago, JoeJ said:
For me a compound is just a single rigid body that recalculates mass and inertia from multiple input bodies.
Yes, that is exactly how Unity and most engines uses it. As an example a compound collision works like this:
Of Course it doesn't really matter what direction the axis look like the important part of compound collisions is that each collision box is treated as a object "stuck" to an object.
3 hours ago, JoeJ said:
What do do you mean this? I'm confused. Sounds like a bug in Unity?
The confusion comes from developers assuming that a compound collision will act as one solid body. However this isn't true, so they mistakenly think that if the ball hits the new shape it will act as one solid body:
It looks simple now because clearly the compound collision is correct, however this is a simple straightforward collision.
let's say it was a character with a arm, and to prevent the character from falling the developer constraint the collisions to rotate only around the upwords axis. Then this happens:
What the developer wasn't expecting is that when the arm is hit, it sends the character tumbling, instead of spinning. This is a very common mistake in a lot of games, because developers forget that a compound collision is made of individual parts and not a single object.
Another common mistake is to use a global up direction to lock the constraint, but that would act weird when the character is on a incline.
So often the total force is used like a gyroscope, gravity is checked for downwards force that already considers mass. This way a character can spin and fall over spinning correctly.
A global down vector multiplied by total mass should also work for this, since that is what gravity is most of the time. However in space like games with multiple gravity points, or a Super Mario Galaxy like game, gravity as a variable would be better.