Firstborn/Library/PackageCache/com.unity.render-pipelines..../Samples~/URPPackageSamples/SharedAssets/Scripts/AutoLoadPipelineAsset.cs

58 lines
1.5 KiB
C#
Raw Normal View History

2023-03-28 13:24:16 -04:00
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
[ExecuteAlways]
public class AutoLoadPipelineAsset : MonoBehaviour
{
[SerializeField]
private UniversalRenderPipelineAsset m_PipelineAsset;
private RenderPipelineAsset m_PreviousPipelineAsset;
private bool m_overrodeQualitySettings;
void OnEnable()
{
UpdatePipeline();
}
void OnDisable()
{
ResetPipeline();
}
private void UpdatePipeline()
{
if (m_PipelineAsset)
{
if (QualitySettings.renderPipeline != null && QualitySettings.renderPipeline != m_PipelineAsset)
{
m_PreviousPipelineAsset = QualitySettings.renderPipeline;
QualitySettings.renderPipeline = m_PipelineAsset;
m_overrodeQualitySettings = true;
}
else if (GraphicsSettings.renderPipelineAsset != m_PipelineAsset)
{
m_PreviousPipelineAsset = GraphicsSettings.renderPipelineAsset;
GraphicsSettings.renderPipelineAsset = m_PipelineAsset;
m_overrodeQualitySettings = false;
}
}
}
private void ResetPipeline()
{
if (m_PreviousPipelineAsset)
{
if (m_overrodeQualitySettings)
{
QualitySettings.renderPipeline = m_PreviousPipelineAsset;
}
else
{
GraphicsSettings.renderPipelineAsset = m_PreviousPipelineAsset;
}
}
}
}