Files
Fishing2/Packages/com.waveharmonic.crest/Shared/Scripts/Rendering/RenderPipelineTerrainPatcher.cs
2026-01-08 22:30:55 +08:00

63 lines
1.6 KiB
C#

// Crest Water System
// Copyright © 2024 Wave Harmonic. All rights reserved.
using UnityEditor.SceneManagement;
using UnityEngine;
namespace WaveHarmonic.Crest.Editor
{
#if !CREST_DEBUG
[AddComponentMenu("")]
#endif
sealed class RenderPipelineTerrainPatcher : RenderPipelinePatcher
{
[SerializeField, HideInInspector]
#pragma warning disable 414
int _Version = 0;
#pragma warning restore 414
[SerializeField]
Material _Material;
[SerializeField]
Material _MaterialHDRP;
[SerializeField]
Material _MaterialURP;
#if UNITY_EDITOR
protected override void OnEnable()
{
base.OnEnable();
OnActiveRenderPipelineTypeChanged();
}
protected override void OnActiveRenderPipelineTypeChanged()
{
if (PrefabStageUtility.GetCurrentPrefabStage() != null)
{
return;
}
if (!isActiveAndEnabled)
{
return;
}
#if d_Unity_Terrain
foreach (var terrain in GetComponentsInChildren<Terrain>())
{
terrain.materialTemplate = RenderPipelineHelper.RenderPipeline switch
{
RenderPipeline.Legacy => _Material,
RenderPipeline.Universal => _MaterialURP,
RenderPipeline.HighDefinition => _MaterialHDRP,
_ => throw new System.NotImplementedException(),
};
}
#endif // d_Unity_Terrain
}
#endif
}
}