You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RizzeProjectile/Assets/Scripts/Utilities/RenderSettingsUpdater.cs

109 lines
3.9 KiB
C#

using UnityEngine;
using UnityEngine.Rendering;
namespace Projectiles
{
// This utility helps set correct scene lighting when multi-peer mode is used
public sealed class RenderSettingsUpdater : MonoBehaviour
{
public Material Skybox;
public Light Sun;
public bool Fog;
public FogMode FogMode;
public Color FogColor;
public float FogDensity;
public float FogStartDistance;
public float FogEndDistance;
public AmbientMode AmbientMode;
[ColorUsage(true, true)]
public Color AmbientLight;
public float AmbientIntensity;
[ColorUsage(true, true)]
public Color AmbientEquatorColor;
[ColorUsage(true, true)]
public Color AmbientGroundColor;
[ColorUsage(true, true)]
public Color AmbientSkyColor;
public SphericalHarmonicsL2 AmbientProbe;
public Color SubtractiveShadowColor;
public float ReflectionIntensity;
public int ReflectionBounces;
public DefaultReflectionMode DefaultReflectionMode;
public int DefaultReflectionResolution;
public float HaloStrength;
public float FlareStrength;
public float FlareFadeSpeed;
public void ApplySettings()
{
RenderSettings.skybox = Skybox;
RenderSettings.sun = Sun;
RenderSettings.fog = Fog;
RenderSettings.fogMode = FogMode;
RenderSettings.fogColor = FogColor;
RenderSettings.fogDensity = FogDensity;
RenderSettings.fogStartDistance = FogStartDistance;
RenderSettings.fogEndDistance = FogEndDistance;
RenderSettings.ambientMode = AmbientMode;
RenderSettings.ambientLight = AmbientLight;
RenderSettings.ambientIntensity = AmbientIntensity;
RenderSettings.ambientEquatorColor = AmbientEquatorColor;
RenderSettings.ambientGroundColor = AmbientGroundColor;
RenderSettings.ambientSkyColor = AmbientSkyColor;
RenderSettings.ambientProbe = AmbientProbe;
RenderSettings.subtractiveShadowColor = SubtractiveShadowColor;
RenderSettings.reflectionIntensity = ReflectionIntensity;
RenderSettings.reflectionBounces = ReflectionBounces;
RenderSettings.defaultReflectionMode = DefaultReflectionMode;
RenderSettings.defaultReflectionResolution = DefaultReflectionResolution;
RenderSettings.haloStrength = HaloStrength;
RenderSettings.flareStrength = FlareStrength;
RenderSettings.flareFadeSpeed = FlareFadeSpeed;
}
[ContextMenu("Load Settings")]
public void LoadSettings()
{
Skybox = RenderSettings.skybox;
Sun = RenderSettings.sun;
Fog = RenderSettings.fog;
FogMode = RenderSettings.fogMode;
FogColor = RenderSettings.fogColor;
FogDensity = RenderSettings.fogDensity;
FogStartDistance = RenderSettings.fogStartDistance;
FogEndDistance = RenderSettings.fogEndDistance;
AmbientMode = RenderSettings.ambientMode;
AmbientLight = RenderSettings.ambientLight;
AmbientIntensity = RenderSettings.ambientIntensity;
AmbientEquatorColor = RenderSettings.ambientEquatorColor;
AmbientGroundColor = RenderSettings.ambientGroundColor;
AmbientSkyColor = RenderSettings.ambientSkyColor;
AmbientProbe = RenderSettings.ambientProbe;
SubtractiveShadowColor = RenderSettings.subtractiveShadowColor;
ReflectionIntensity = RenderSettings.reflectionIntensity;
ReflectionBounces = RenderSettings.reflectionBounces;
DefaultReflectionMode = RenderSettings.defaultReflectionMode;
DefaultReflectionResolution = RenderSettings.defaultReflectionResolution;
HaloStrength = RenderSettings.haloStrength;
FlareStrength = RenderSettings.flareStrength;
FlareFadeSpeed = RenderSettings.flareFadeSpeed;
}
}
}