Should non-rendered (code only) GameObjects be marked as static

Does anyone know if it’s beneficial to mark non-rendered GameObjects as static?

For instance if I have a GameObject that only contains code - nothing that actually needs moving, lighting etc - does Unity still do some processing that’d be reduced by marking it as Static?

Answering my own question because I ran some tests on it.

I set VSync off and TargetFrameRate to unlimited, then spawned 100,000 GameObjects with a simple script on each that did nothing graphical. The scene also contained a camera and the original spawner object.

In a build, I could see no difference in framerate between having them static or not. In the editor, there might be a very slight difference, or I could just be imagining things. Either way it doesn’t matter.

In short, setting static or not seems to have no effect on non-rendered GameObjects.

It will have no effect if an object does not have a mesh renderer or particle system.

From the documentation: Unity can combine a number of objects at runtime and draws them together with a single draw call. This operation is called “batching”. The more objects Unity can batch together, the better rendering performance (on the CPU side) you can get. Static batching allows the engine to reduce draw calls for geometry of any size (provided it does not move and shares the same material). If several objects shared the same geometry before static batching, then a copy of geometry will be created for each object, either in the Editor or at runtime. Currently, only Mesh Renderers and Particle Systems are batched.

for anyone tripping up on this like me - the Static checkbox in the editor Inspector is only concerned with rendering and navigation, so if your GameObject is “non-rendered (code only)” like this post describes, marking it as static will have no effect

“static” colliders are a different story, which is where my confusion came from - if your GameObject is just a collider (no mesh renderer, etc.) and you want to tell Unity it’s static, marking that Static checkbox again has no effect, Unity considers a collider “static” if it has no Rigidbody anywhere in its hierarchy