You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
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; |
|
} |
|
|
|
} |
|
} |
|
}
|
|
|