OldBlueWater/BlueWater/Assets/Crest/Crest-Examples/Shared/Scripts/LoadRenderPipelineAsset.cs
2023-08-01 13:03:57 +09:00

49 lines
1.3 KiB
C#

// Crest Ocean System
// Copyright 2022 Wave Harmonic Ltd
namespace Crest.Examples
{
using UnityEngine;
using UnityEngine.Rendering;
/// <summary>
/// Loads a Render Pipeline Asset when entering play mode. Useful if wanting to enforce quality or features for a
/// scene.
/// </summary>
public class LoadRenderPipelineAsset : MonoBehaviour
{
[SerializeField]
RenderPipelineAsset _renderPipelineAsset;
RenderPipelineAsset _oldRenderPipelineAssetGraphics;
RenderPipelineAsset _oldRenderPipelineAssetQuality;
void OnEnable()
{
_oldRenderPipelineAssetGraphics = GraphicsSettings.renderPipelineAsset;
_oldRenderPipelineAssetQuality = QualitySettings.renderPipeline;
if (_renderPipelineAsset == null)
{
return;
}
GraphicsSettings.renderPipelineAsset = _renderPipelineAsset;
QualitySettings.renderPipeline = _renderPipelineAsset;
}
void OnDisable()
{
if (_renderPipelineAsset == null)
{
return;
}
GraphicsSettings.renderPipelineAsset = _oldRenderPipelineAssetGraphics;
QualitySettings.renderPipeline = _oldRenderPipelineAssetQuality;
}
}
}