Collision between Kinematic and Physic objects

Hello everybody! Huge problem over here: I have a rotating device with kinematic rigidbody. It always rotate the same speed, but unless I make that speed really slow, it always goes through the balls (which are physics objects). Any solution for this? Maybe through C# instead of Unity physics system?
Because I need the interaction to be as real as possible, meaning if the device hits a ball, the ball must react according to the device speed, and must interact and affect all the other balls too if they hit with each other… and I must be able to change the device speed as well, which means that the collision detection must be flawless regardless the speed of both physics and kinematic objects.
Seems extremelly hard and couldn´t find any solution yet, thank you very much!

Is it necessary to use a kinematic Rigidbody for the device?
This remind me another thread(lol)

You´re right, Alexeu, it´s not. Nevertheless, there´re still some interpenetrations between the models. Guess I´ll have to figure out how to fine tune the Project Manager > Physics… thanks for writing!

A checklist for that to work. It seems you’ve already set up points 2 and 3, so ensure the point 1 applies:

  • Rotate your kinematic body with Rigidbody.MoveRotation from FixedUpdate (no Transform.Rotate, Update etc).
  • Set the rigidbody’s collision mode to Continuous Speculative.
  • Use only primitive colliders in it (Box, Sphere, Capsule only - no MeshColliders).

Maybe the balls require Continuous Speculative as well?

Depending on the rotation speed, you may need to use higher frequency physics. This is configured in Project Settings > Time > Fixed Delta Time. Default is 0.02 (50 Hz). You may try 0.01 (100 Hz).

Note that Rigidbody.MoveRotation is not specific to kinematic rigidbodies…

UNITY Description
Rotates the rigidbody to rotation.

When used in non-kinematic bodies it will just override the rotation already calculated by the physics engine, which may cause issues in specific scenarios.