Exemple #1
0
 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();
    }