public void ActionOnDisable()
 {
     if (RuntimeBakedLightmapUtils.CheckInstance(this))
     {
         BakeJustApplied = false;
         // Debug.LogWarning(" Removing Prefab lightMap " + name);
     }
     RefAdded = false;
 }
Beispiel #2
0
        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;
        }