Kinematic bodies normally do not detect collisions (here and in other engines), collision detection is only triggered by the move
api, if you need to use is_colliding
, use move first.
If the kinematic body won't move you can use the rigid body to pass the collision with a signal using body_enter
(enable monitoring and increase the contact number for this to work).
So in the rigid's body enter, check the body parameter, if is the kinematic body you want (group or class check) use a function on the kinematic script to do something with that information.
Other option is to connect the rigid to the kinematic directly but the usefulness of that depends on the design.
And in some cases you can just add an area to the body to detect others.