public void BakeApply() { if (!HasBakeData) { BakeJustApplied = false; return; } if (!BakeApplied) { BakeJustApplied = RuntimeBakedLightmapUtils.InitializeInstance(this); #if UNITY_EDITOR // if (BakeJustApplied) Debug.LogWarning("[PrefabBaker] Addeded prefab lightmap data to current scene " + name); if (!Application.isPlaying) { RuntimeBakedLightmapUtils.UpdateUnityLightMaps(); } #endif } for (var i = 0; i < renderers.Length; ++i) { renderers[i].lightmapScaleOffset = renderersLightmapOffsetScale[i]; } }
private static IEnumerator WorkingCoroutine() { yield return(null); // Lazy loaded enumerated int count = 0; int adding; RuntimeBakedLightmapUtils.ClearAndAddUnityLightMaps(); foreach (var item in AddOrRemove) { adding = 0; if (item.Key != null) { if (item.Value) { if (!item.Key.RefAdded) { adding = 1; item.Key.ActionOnEnable(); } } else { if (item.Key.RefAdded) { adding = 1; item.Key.ActionOnDisable(); } } if (RuntimeBakedLightmapUtils.IsLightMapsChanged) { RuntimeBakedLightmapUtils.IsLightMapsChanged = false; count += adding; if (count % COUNT_FRAMES == 0) { adding = 0; RuntimeBakedLightmapUtils.UpdateUnityLightMaps(); yield return(null); RuntimeBakedLightmapUtils.ClearAndAddUnityLightMaps(); } } } else { foreach (var lightmapCheckRemove in AddOrRemoveToCheck) { adding = 0; if (RuntimeBakedLightmapUtils.CheckInstance(lightmapCheckRemove.Key)) { adding = 1; // Debug.LogWarning(" Removing Prefab lightMap " + lightmapCheckRemove.Value); } count += adding; if (RuntimeBakedLightmapUtils.IsLightMapsChanged) { RuntimeBakedLightmapUtils.IsLightMapsChanged = false; count += adding; if (count % COUNT_FRAMES == 0) { adding = 0; RuntimeBakedLightmapUtils.UpdateUnityLightMaps(); yield return(null); RuntimeBakedLightmapUtils.ClearAndAddUnityLightMaps(); } } } } } if (count > 0) { RuntimeBakedLightmapUtils.UpdateUnityLightMaps(); } RuntimeBakedLightmapUtils.ClearAndAddUnityLightMaps(false); AddOrRemove.Clear(); toRun = null; }