I want to make physics tick less for far-away objects to save performance. They can use less iteration, inaccurate but faster interpolation, larger fixedDeltaTime etc.
For example I can make my own Update tick lesser by checking distance >= 100 && Time.frameCount % 3 != 0 and skip update when it’s true.
There isn’t really a way of doing this for moving objects, as the physics step in unity is a static length (hence why the method is called “FixedUpdate)”, unlike with Update, so you can’t selectively change how long a single rigidbody’s physics step is, only the length of the physics step for all rigidbodies.
Your best option is sleeping rigidbodies, which will stop them from moving until they collide or a force acts on them. You can do this by calling Rigidbody.Sleep() to force them to start sleeping, or you can change the sleepThreshold of further away rigidbodies to make them sleep automatically at higher speeds.