Stop physics without Time.timeScale

Hi. I’m looking for a cheap way for stopping the physic simulation.

In my game you basically roll around a ball using physics. When the ball hits the finish, I want the ball and every other rigidbody to stop. However I also want to use particle effects afterwards, so I can’t set Time.timeScale to 0.

I’ve tried to set every(Rigid)bodys velocity to 0 during FixedUpdate, but they were still moving slowly under gravity. Besides this seems too crude to me anyways.

Thanks alot.

have a manager somewhere that registers all of your rigidbodies. then, when you need to stop them, go through the array or list and set something like:

public List<Rigidbody> physObjects = new List<Rigidbody>();


public void AddRigidbody(Rigidbody r)
{
    physObjects.Add(r);
}

public void DisablePhysics()
{
    foreach(Rigidbody r in physObjects)
    {
        r.isKinematic = true;
    }
}

public void EnablePhysics()
{
    foreach(Rigidbody r in physObjects)
    {
        r.isKinematic = false;
    }


}