Manually change lightmap index doesn't work on Android

What I was planning to do is to make a “Material LOD” system for environment. All the LOD levels have same mesh but different material. (Standard up close, diffuse far away, etc). And I don’t want the LODs to waste my lightmap space, so the idea is to only Bake LOD0 and make other LODs have the same lightmap properties as LOD0 because their mesh were identical. I’ve tried 2 different ways of setting the lightmap index/scale offset properties of objects.

A). Use serialized property in editor. After reading about how Unity handles the information nowadays (in snapshot, not in objects), I figured out this won’t work. But at least I could get some nice preview in editor.

B). Set renderer.lightmapIndex and renderer.lightmapScaleOffset after the level is loaded.

And here comes the problem: A and B both work on PC platform. But on android B doesn’t work, neither in the editor nor actual device. A still work in editor (in Android setting) though.

I guess the problem is related to how lightmap snapshot data is handled on those platforms. It’s really bothering me that the lightmap-related problem often happen more on mobile platforms rather than PC. After all that’s where I truly need them.

Sorry for necroing, but did anyone figure out how to solve this issue?

Especially “Set renderer.lightmapIndex and renderer.lightmapScaleOffset after the level is loaded”