Suspension of Physics

In the project I’m working on, I’m currently trying to make a script that can essentially suspend or unsuspend physics. By that, I mean that it would stop physics for all gameObjects but be able to start physics again while preserving related values.

I have tried setting Time.timeScale to 0, but this seems to prevent triggers from working properly (OnTriggerStay and OnTriggerExit don’t seem to be called).

Is there any way to work around the problem with my previous method? If not, is there another method I could use to reach my goal?

This question has been asked before:

There is no way of turning physics off. However, depending on what you’re trying to achieve, you could disable all RigidBodies in the scene. That should be almost as disabling the physics engine.