Пример #1
0
        private void UpdateNullFogZones()
        {
            int nullFogZoneCount = 0;

            FogNullZones.Sort(NullFogZoneSorter);
            for (int i = 0; i < FogNullZones.Count && nullFogZoneCount < MaximumNullFogZones; i++)
            {
                if (GeometryUtility.TestPlanesAABB(WeatherMakerScript.Instance.CurrentCameraFrustumPlanes, FogNullZones[i]))
                {
                    nullFogZoneArrayMin[nullFogZoneCount] = FogNullZones[i].min;
                    nullFogZoneArrayMax[nullFogZoneCount] = FogNullZones[i].max;
                    nullFogZoneCount++;
                }
            }
            Shader.SetGlobalInt("_FogNullZoneCount", nullFogZoneCount);
            Shader.SetGlobalVectorArray("_FogNullZonesMin", nullFogZoneArrayMin);
            Shader.SetGlobalVectorArray("_FogNullZonesMax", nullFogZoneArrayMax);
            if (nullFogZoneCount == 0)
            {
                Shader.DisableKeyword("WEATHER_MAKER_FOG_ENABLE_NULL_FOG_ZONES");
            }
            else
            {
                Shader.EnableKeyword("WEATHER_MAKER_FOG_ENABLE_NULL_FOG_ZONES");
            }
        }
Пример #2
0
 private void Update()
 {
     FogNullZones.Clear();
 }