예제 #1
0
        static bool Prefix(LightMapDataObject __instance)
        {
            LightmapData[] array = new LightmapData[__instance.light.Length];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = new LightmapData
                {
                    lightmapNear = __instance.dir[i],
                    lightmapFar  = __instance.light[i]
                };
            }

            LightmapSettings.lightmaps         = array;
            LightmapSettings.lightProbes       = __instance.lightProbes;
            LightmapSettings.lightmapsMode     = __instance.lightmapsMode;
            RenderSettings.reflectionBounces   = HarmonyPatch_Config.BasicSettings.ReflectionBounces;
            RenderSettings.reflectionIntensity = HarmonyPatch_Config.BasicSettings.ReflectionIntensity;

            if (__instance.cubemap != null)
            {
                RenderSettings.customReflection            = __instance.cubemap;
                RenderSettings.defaultReflectionMode       = UnityEngine.Rendering.DefaultReflectionMode.Custom;
                RenderSettings.customReflection.mipMapBias = HarmonyPatch_Config.BasicSettings.ReflectionCubemapMipmapBias;
            }
            else
            {
                RenderSettings.defaultReflectionMode = UnityEngine.Rendering.DefaultReflectionMode.Skybox;
            }

            __instance.fog?.Change();

            return(false);
        }
예제 #2
0
 public static void MapSettingChange(LightMapDataObject lightMap, Scene.FogData fog = null)
 {
     if (Object.op_Inequality((Object)lightMap, (Object)null))
     {
         lightMap.Change();
     }
     fog?.Change();
 }