public static void StoreAll() { foreach (Renderer r in FindObjectsOfType <Renderer>()) { if (r.lightmapIndex != -1) { LightmapParams lmp = r.gameObject.GetComponent <LightmapParams>(); if (!lmp) { lmp = r.gameObject.AddComponent <LightmapParams>(); } lmp.lightmapIndex = r.lightmapIndex; lmp.lightmapScaleOffset = r.lightmapScaleOffset; lmp.lightmapNear = LightmapSettings.lightmaps[lmp.lightmapIndex].lightmapDir; lmp.lightmapFar = LightmapSettings.lightmaps[lmp.lightmapIndex].lightmapColor; } } }
void CollectLightmapParams(bool isNight) { GameObject scenery = GameObject.Find("scenery"); if (scenery == null) { RefreshEditorStateDisp(); return; } GameObject models = GameObject.Find("scenery/models"); if (models == null) { RefreshEditorStateDisp(); return; } GameObject dncc = null; DayNightConfig dnc = scenery.GetComponentInChildren <DayNightConfig> (); if (dnc == null) { var prefabc = AssetDatabase.LoadAssetAtPath <GameObject> ("Assets/Models/Prefab/lightingCtrl/dayNightCycleCtrls.prefab"); dncc = PrefabUtility.InstantiatePrefab(prefabc) as GameObject; dncc.transform.SetParent(scenery.transform, false); } else { dncc = dnc.gameObject; } GameObject lsgo = null; LightmapSwitcher lss = dncc.GetComponentInChildren <LightmapSwitcher> (); if (lss == null) { var prefabc = AssetDatabase.LoadAssetAtPath <GameObject> ("Assets/Models/Prefab/lightingCtrl/lightmapSwitcher.prefab"); lsgo = PrefabUtility.InstantiatePrefab(prefabc) as GameObject; lsgo.transform.SetParent(dncc.transform, false); lss = lsgo.GetComponent <LightmapSwitcher> (); } else { lsgo = lss.gameObject; } List <LightmapParams> lps = new List <LightmapParams> (); Renderer[] renderers = models.GetComponentsInChildren <Renderer> (); foreach (Renderer r in renderers) { LightmapParams lp = r.gameObject.GetComponent <LightmapParams> (); if (lp == null) { lp = r.gameObject.AddComponent <LightmapParams> (); } lp.RefreshData(); lp.SetData(isNight ? 1 : 0); lps.Add(lp); } lss.allParams = lps.ToArray(); RefreshEditorStateDisp(); }