40 lines
1.2 KiB
C#
Raw Normal View History

2024-11-01 16:55:46 +08:00
using UnityEngine;
using UnityEngine.Rendering;
[ExecuteAlways]
public class HDRFogOverride : MonoBehaviour
{
// private var for previous fog color
private Color _previousFogColor;
// public var for fog color
[ColorUsage(false, true)]public Color FogColor = Color.white;
private void OnEnable()
{
// subscribe to RenderPipelineManager.beginFrameRendering
RenderPipelineManager.beginFrameRendering += BeginFrame;
// subscribe to RenderPipelineManager.endFrameRendering
RenderPipelineManager.endFrameRendering += EndFrame;
}
private void OnDisable()
{
RenderPipelineManager.beginFrameRendering -= BeginFrame;
RenderPipelineManager.endFrameRendering -= EndFrame;
}
private void BeginFrame(ScriptableRenderContext arg1, Camera[] arg2)
{
// get current fog color
_previousFogColor = RenderSettings.fogColor;
// set fog color to our override color
RenderSettings.fogColor = FogColor;
}
private void EndFrame(ScriptableRenderContext arg1, Camera[] arg2)
{
// revert fog color to previous color
RenderSettings.fogColor = _previousFogColor;
}
}