48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
![]() |
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|