OldBlueWater/BlueWater/Assets/FlatKit/Demos/Common/Scripts/AutoLoadPipelineAsset.cs

48 lines
1.4 KiB
C#
Raw Normal View History

2023-08-23 07:32:24 +00:00
using UnityEngine;
using UnityEngine.Rendering;
namespace FlatKit {
[ExecuteAlways]
public class AutoLoadPipelineAsset : MonoBehaviour {
[SerializeField]
private RenderPipelineAsset pipelineAsset;
private RenderPipelineAsset _previousPipelineAsset;
private bool _overrodeQualitySettings;
void OnEnable() {
UpdatePipeline();
}
void OnDisable() {
ResetPipeline();
}
private void OnValidate() {
UpdatePipeline();
}
private void UpdatePipeline() {
if (pipelineAsset) {
if (QualitySettings.renderPipeline != null && QualitySettings.renderPipeline != pipelineAsset) {
_previousPipelineAsset = QualitySettings.renderPipeline;
QualitySettings.renderPipeline = pipelineAsset;
_overrodeQualitySettings = true;
} else if (GraphicsSettings.renderPipelineAsset != pipelineAsset) {
_previousPipelineAsset = GraphicsSettings.renderPipelineAsset;
GraphicsSettings.renderPipelineAsset = pipelineAsset;
_overrodeQualitySettings = false;
}
}
}
private void ResetPipeline() {
if (_previousPipelineAsset) {
if (_overrodeQualitySettings) {
QualitySettings.renderPipeline = _previousPipelineAsset;
} else {
GraphicsSettings.renderPipelineAsset = _previousPipelineAsset;
}
}
}
}
}