Kinematic body only supports Speculative Continuous collision detection

Kinematic body only supports Speculative Continuous collision detection.

Speculative Continuous detection is full of bug. Wrong collisions and wrong velocity/rotation detection.

How can i use the Continuous or Continuous Dynamic with a isKinematic objects? (like in Unity 2017)

Kinematic rigidbodies don’t react to collisions. In order to ensure other non-kinematic bodies to react properly to collisions with the kinematic body you must move the latest with Rigidbody.MovePosition and Rigidbody.MoveRotation from FixedUpdate. Any other method of moving/rotating the kinematic body won’t cause the expected results.

If you still have issues after the above is verified, then it may be a bug. I’d recommend you to submit a bug report with a simple repro case.

The same bug in Unity 2019.1

bug in Unity 2019.1.13f

I had the same issue.

It was because I was setting an item’s RigidBody.isKinematic to true, so that it could be moved by an animation

rigidbody.isKinematic = true;

however the items collision detector was set to “ContinuousDynamic”, which was not right.
To address this, I needed to set the Collision detector to “ContinuousSpeculative” before setting isKinematic to true…

rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative;
rigidbody.isKinematic = true;
4 Likes