#if URP_SCREEN_SPACE_REFLECTION using UnityEditor.Rendering.Universal; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; namespace UnityEditor.Rendering { class ScreenSpaceReflectionPersistentResourcesStripper : IRenderPipelineGraphicsSettingsStripper { public bool active => URPBuildData.instance.buildingPlayerForUniversalRenderPipeline; public bool CanRemoveSettings(ScreenSpaceReflectionPersistentResources resources) { if (GraphicsSettings.TryGetRenderPipelineSettings(out var urpShaderStrippingSettings) && !urpShaderStrippingSettings.stripUnusedVariants) return false; foreach (var urpAssetForBuild in URPBuildData.instance.renderPipelineAssets) { foreach (var rendererData in urpAssetForBuild.m_RendererDataList) { if (rendererData is not UniversalRendererData) continue; foreach (var rendererFeature in rendererData.rendererFeatures) { if (rendererFeature is ScreenSpaceReflectionRendererFeature { isActive: true }) return false; } } } return true; } } } #endif