Quick answer: Unity BatchRendererGroup not rendering after a material swap? BRG caches material properties at registration - re-register the batch when materials change.
DOTS-style instanced rendering. Tinted instances stop drawing after a tint change.
Re-register on change
brg.RemoveBatch(handle);
handle = brg.AddBatch(metadata, mesh, material);BRG batches are immutable per material. Material swap requires a fresh batch.
Or pre-compute variants
Register one batch per material variant. Switch by toggling visibility per batch rather than swapping per batch.
Use MaterialPropertyBlock alternatives
BRG accepts per-instance material data via GraphicsBuffer. Tint becomes a buffer index, not a material swap.
“BRG is high-performance because it's restrictive. The restrictions are real.”
Read the BRG sample code before integrating. The API is deliberately spare; reading the samples is the documentation.