更新天气插件

This commit is contained in:
2025-12-24 00:09:42 +08:00
parent e902fb031a
commit 1ead9e6cc8
156 changed files with 60774 additions and 104069 deletions

View File

@@ -17,19 +17,19 @@ namespace Enviro
public LightingMode lightingMode;
public bool setDirectLighting = true;
public int updateIntervallFrames = 2;
public int updateIntervallFrames = 2;
public AnimationCurve sunIntensityCurve;
public AnimationCurve moonIntensityCurve;
[GradientUsageAttribute(true)]
public Gradient sunColorGradient;
[GradientUsageAttribute(true)]
public Gradient moonColorGradient;
public AnimationCurve sunIntensityCurveHDRP = new AnimationCurve();
public AnimationCurve moonIntensityCurveHDRP = new AnimationCurve();
public AnimationCurve lightColorTemperatureHDRP = new AnimationCurve();
[GradientUsageAttribute(true)]
public Gradient lightColorTintHDRP;
[GradientUsageAttribute(true)]
public Gradient ambientColorTintHDRP;
public float lightIntensityHDRP = 750f;
public bool controlExposure = true;
public AnimationCurve sceneExposure = new AnimationCurve();
public bool controlIndirectLighting = true;
@@ -259,24 +259,31 @@ namespace Enviro
{
//Set light to sun
EnviroManager.instance.Objects.directionalLight.transform.rotation = EnviroManager.instance.Objects.sun.transform.rotation;
EnviroManager.instance.Objects.directionalLight.color = Settings.lightColorTintHDRP.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.directionalLight.color = Settings.sunColorGradient.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.directionalLight.useColorTemperature = true;
EnviroManager.instance.Objects.directionalLight.colorTemperature = Settings.lightColorTemperatureHDRP.Evaluate(EnviroManager.instance.solarTime);
#if UNITY_6000_0_OR_NEWER
EnviroManager.instance.Objects.directionalLight.intensity = Settings.sunIntensityCurve.Evaluate(EnviroManager.instance.solarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier;
#else
if(directionalLightHDRP != null)
directionalLightHDRP.SetIntensity(Settings.sunIntensityCurveHDRP.Evaluate(EnviroManager.instance.solarTime) * Settings.directLightIntensityModifier);
directionalLightHDRP.SetIntensity(Settings.sunIntensityCurve.Evaluate(EnviroManager.instance.solarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier);
#endif
}
else
{
//Set light to moon
EnviroManager.instance.Objects.directionalLight.transform.rotation = EnviroManager.instance.Objects.moon.transform.rotation;
EnviroManager.instance.Objects.directionalLight.color = Settings.lightColorTintHDRP.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.directionalLight.color = Settings.moonColorGradient.Evaluate(EnviroManager.instance.lunarTime);
EnviroManager.instance.Objects.directionalLight.useColorTemperature = true;
EnviroManager.instance.Objects.directionalLight.colorTemperature = Settings.lightColorTemperatureHDRP.Evaluate(EnviroManager.instance.solarTime);
if(directionalLightHDRP != null)
directionalLightHDRP.SetIntensity(Settings.moonIntensityCurveHDRP.Evaluate(EnviroManager.instance.lunarTime) * Settings.directLightIntensityModifier);
#if UNITY_6000_0_OR_NEWER
EnviroManager.instance.Objects.directionalLight.intensity = Settings.moonIntensityCurve.Evaluate(EnviroManager.instance.lunarTime) * Settings.lightIntensityHDRP* Settings.directLightIntensityModifier;
#else
if (directionalLightHDRP != null)
directionalLightHDRP.SetIntensity(Settings.moonIntensityCurve.Evaluate(EnviroManager.instance.lunarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier);
#endif
}
if(directionalLightHDRP != null)
@@ -286,27 +293,37 @@ namespace Enviro
{
//Sun
EnviroManager.instance.Objects.directionalLight.transform.rotation = EnviroManager.instance.Objects.sun.transform.rotation;
EnviroManager.instance.Objects.directionalLight.color = Settings.lightColorTintHDRP.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.directionalLight.color = Settings.sunColorGradient.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.directionalLight.useColorTemperature = true;
EnviroManager.instance.Objects.directionalLight.colorTemperature = Settings.lightColorTemperatureHDRP.Evaluate(EnviroManager.instance.solarTime);
if(directionalLightHDRP != null)
{
directionalLightHDRP.SetIntensity(Settings.sunIntensityCurveHDRP.Evaluate(EnviroManager.instance.solarTime) * Settings.directLightIntensityModifier);
#if UNITY_6000_0_OR_NEWER
EnviroManager.instance.Objects.directionalLight.intensity = Settings.sunIntensityCurve.Evaluate(EnviroManager.instance.solarTime) * Settings.lightIntensityHDRP* Settings.directLightIntensityModifier;
#else
directionalLightHDRP.SetIntensity(Settings.sunIntensityCurve.Evaluate(EnviroManager.instance.solarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier);
#endif
directionalLightHDRP.shadowDimmer = Settings.shadowIntensity;
}
//Moon
if(EnviroManager.instance.Objects.additionalDirectionalLight != null)
{
EnviroManager.instance.Objects.additionalDirectionalLight.transform.rotation = EnviroManager.instance.Objects.moon.transform.rotation;
EnviroManager.instance.Objects.additionalDirectionalLight.color = Settings.lightColorTintHDRP.Evaluate(EnviroManager.instance.solarTime);
EnviroManager.instance.Objects.additionalDirectionalLight.color = Settings.moonColorGradient.Evaluate(EnviroManager.instance.lunarTime);
EnviroManager.instance.Objects.additionalDirectionalLight.useColorTemperature = true;
EnviroManager.instance.Objects.additionalDirectionalLight.colorTemperature = Settings.lightColorTemperatureHDRP.Evaluate(EnviroManager.instance.solarTime);
}
if(additionalLightHDRP != null)
{
additionalLightHDRP.SetIntensity(Settings.moonIntensityCurveHDRP.Evaluate(EnviroManager.instance.lunarTime) * Settings.directLightIntensityModifier);
#if UNITY_6000_0_OR_NEWER
EnviroManager.instance.Objects.directionalLight.intensity = Settings.moonIntensityCurve.Evaluate(EnviroManager.instance.lunarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier;
#else
additionalLightHDRP.SetIntensity(Settings.moonIntensityCurve.Evaluate(EnviroManager.instance.lunarTime) * Settings.lightIntensityHDRP * Settings.directLightIntensityModifier);
#endif
additionalLightHDRP.shadowDimmer = Settings.shadowIntensity;
}
}
@@ -398,7 +415,7 @@ namespace Enviro
public void UpdateAmbientLighting (bool forced = false)
{
RenderSettings.ambientMode = Settings.ambientMode;
float intensity = Settings.ambientIntensityCurve.Evaluate(EnviroManager.instance.solarTime) * Settings.ambientIntensityModifier;
RenderSettings.ambientIntensity = intensity;
@@ -424,10 +441,10 @@ namespace Enviro
}
else
{
if (lastAmbientSkyboxUpdate < Time.realtimeSinceStartup || lastAmbientSkyboxUpdate > Time.realtimeSinceStartup + (Settings.ambientUpdateIntervall + 0.01f))
if (lastAmbientSkyboxUpdate < Time.time)
{
UpdateAmbient(Settings.ambientMode,intensity);
lastAmbientSkyboxUpdate = Time.realtimeSinceStartup + Settings.ambientUpdateIntervall;
lastAmbientSkyboxUpdate = Time.time + (Settings.ambientUpdateIntervall * 60);
}
}
}