void SetLightmapSettings()
    {
        for (int i = 0; i < LightmapSettings.lightmaps.Length; i++)
        {
            if (LightmapSettings.lightmaps[i].lightmapFar != null)
            {
                Resources.UnloadAsset(LightmapSettings.lightmaps[i].lightmapFar);
            }

            if (LightmapSettings.lightmaps[i].lightmapNear != null)
            {
                Resources.UnloadAsset(LightmapSettings.lightmaps[i].lightmapNear);
            }
        }

        rd = new LightmapData[lightmaps.Length];

        for (int i = 0; i < lightmaps.Length; i++)
        {
            rd[i]             = new LightmapData();
            rd[i].lightmapFar = lightmaps[i];
        }

        LightmapSettings.lightmaps   = rd;
        LightmapSettings.lightProbes = lightProbes;

        if (!setOriginalLightmapsOnDestroy)
        {
            previousLightmapSettings = this;
        }
    }
 void OnDestroy()
 {
     if (setOriginalLightmapsOnDestroy && previousLightmapSettings != null)
     {
         previousLightmapSettings.SetLightmapSettings();
         previousLightmapSettings = null;
     }
 }