using UnityEngine; using UnityEngine.Rendering.Universal; namespace NBF.Setting { [Sort(5)] public class RenderScaleSetting : RangeOptionFloat { public override string Name => "RenderScale"; public override string Group => SettingsDef.Group.Graphic; public override float MinValue => 0.1f; public override float MaxValue => 2f; protected override void OnInitialize() { } protected override void OnApply() { // 获取当前URP Asset UniversalRenderPipelineAsset URPAsset = QualitySettings.GetRenderPipelineAssetAt(QualitySettings.GetQualityLevel()) as UniversalRenderPipelineAsset; if (URPAsset) { //渲染比例 URPAsset.renderScale = GetValue(); } } protected override void OnReset() { SetValue(1); } } }