Switching GameObject between static and non-static

We have a boardgame-like game, where the gameboard tiles are changing every now and then, but not constantly. Is it a common way to do things to programmatically mark tiles that are not changing static and when they have to be changed, back to non-static?

The purpose of static is to do pre-optimisation at build-time not run-time. This means that if you enable or disable static objects at runtime the things part of the static parameter won’t be updated.

  1. Lightmapping
  2. Occluder and Occludee
  3. Batching
  4. Navigation
  5. Off-Mesh Links
  6. Reflection Probes

That does not mean that it isn’t possible to do some optimisations at run-time like combining meshes, but you need to handle the updating yourself I would guess and doing any of this during game-play would most likely cause major frame-drop so it has to be done during loading.
I recommend you only mark things that are persistent as static and everything else leave it as non-static. Lightmapping normally takes minutes or even hours so it would probably never be feasible to do at run-time.

The static checkbox? “Is it a common way” - no, well, I’ve never used it. It’s only been there since unity 5 (i think).
It’s nice to see pengocats answer which explains what it is.