Search Unity

Fast moving rigidbody detects collision even when it's too far from the other collider

Discussion in 'Physics' started by ArshakKroyan, Nov 29, 2019.

  1. ArshakKroyan

    ArshakKroyan

    Joined:
    Mar 4, 2015
    Posts:
    9
    In my project I have the following game objects:
    • one ball (rigidbody with Continous Dynamic collision detection and Sphere collider)
    • target (kinematic rigidbody, Continous collision detection and NON-convex ring shaped mesh collider)


    I am moving the ball by giving big impulse.

    When the ball is moving very fast, the OnColissionEnter method is being called, even though the distance is too large between the ball and the target (distance is 6-7 units, and ball collider is 1 unit).

    What would be the possible reason?
    Have anyone faced with similar issue?
     
    darman77 likes this.
  2. darman77

    darman77

    Joined:
    Jun 14, 2015
    Posts:
    11
    There is some very annoying bug that I'm also facing. Look at this:

    bug.jpg
    Both bodies are just regular Boxes with BoxColliders and Rigidbodies components.

    Body 1 is a Kinematic body, moved in indicated direction by MovePosition method of RigidBody in FixedUpdate.

    Body 2 is also Kinematic body but it's stationary.

    Marked red are Collision Points with their normals detected by Unity, if Body 1 exceeds some speed (35 units/s in my example).

    I'm not sure if this is clear from this image, but Body 1 is way above Body 2 so no collision should be registered at all!

    It happens regardless of collision detection mode set in Body 1 (for Kinematic body you can only set Discreet or Continuous Speculative)

    I have example project if someone is interested. Also I filed bug some time ago, but I didn't get any feedback.

    PS. I have enabled Kinematic Kinematic pairs in Physic options.
     
    ArshakKroyan likes this.
  3. ArshakKroyan

    ArshakKroyan

    Joined:
    Mar 4, 2015
    Posts:
    9
    Hi @darman77 .
    Please attach the project to here. Really interesting bug.
    Also send the link of reported bug.
     
  4. darman77

    darman77

    Joined:
    Jun 14, 2015
    Posts:
    11
    Sure. This is bug report: https://fogbugz.unity3d.com/default.asp?1202028_e7r8bo134dhv813v (no feedback so far) and in attachment you'll find project with two scenes for different scenarios:

    1. Kinematic vs Kinematic
    2. Kinematic vs NonKinematic.

    I suspect that Discreet and Continuous Speculative (only two modes you can set for Kinematic bodies) collision detection modes are broken. I can accept that we can miss some high speed collision, but those "ghost" contacts are just ridiculous and not acceptable. Still don't know if this is issue with Unity or PhysX.

    P.S. See my other thread regarding this issue:
    https://forum.unity.com/threads/kinematic-body-collision-detection-bugged.788981/
     

    Attached Files:

    ArshakKroyan likes this.