ScreenSpaceReflectionsEditor.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using UnityEngine;
  2. using UnityEngine.Rendering.PostProcessing;
  3. namespace UnityEditor.Rendering.PostProcessing
  4. {
  5. [PostProcessEditor(typeof(ScreenSpaceReflections))]
  6. internal sealed class ScreenSpaceReflectionsEditor : PostProcessEffectEditor<ScreenSpaceReflections>
  7. {
  8. SerializedParameterOverride m_Preset;
  9. SerializedParameterOverride m_MaximumIterationCount;
  10. SerializedParameterOverride m_Thickness;
  11. SerializedParameterOverride m_Resolution;
  12. SerializedParameterOverride m_MaximumMarchDistance;
  13. SerializedParameterOverride m_DistanceFade;
  14. SerializedParameterOverride m_Vignette;
  15. public override void OnEnable()
  16. {
  17. m_Preset = FindParameterOverride(x => x.preset);
  18. m_MaximumIterationCount = FindParameterOverride(x => x.maximumIterationCount);
  19. m_Thickness = FindParameterOverride(x => x.thickness);
  20. m_Resolution = FindParameterOverride(x => x.resolution);
  21. m_MaximumMarchDistance = FindParameterOverride(x => x.maximumMarchDistance);
  22. m_DistanceFade = FindParameterOverride(x => x.distanceFade);
  23. m_Vignette = FindParameterOverride(x => x.vignette);
  24. }
  25. public override void OnInspectorGUI()
  26. {
  27. if (RuntimeUtilities.scriptableRenderPipelineActive)
  28. {
  29. EditorGUILayout.HelpBox("This effect doesn't work with scriptable render pipelines yet.", MessageType.Warning);
  30. return;
  31. }
  32. if (Camera.main != null && Camera.main.actualRenderingPath != RenderingPath.DeferredShading)
  33. EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Warning);
  34. if (!SystemInfo.supportsComputeShaders)
  35. EditorGUILayout.HelpBox("This effect requires compute shader support.", MessageType.Warning);
  36. PropertyField(m_Preset);
  37. if (m_Preset.value.intValue == (int)ScreenSpaceReflectionPreset.Custom)
  38. {
  39. PropertyField(m_MaximumIterationCount);
  40. PropertyField(m_Thickness);
  41. PropertyField(m_Resolution);
  42. EditorGUILayout.Space();
  43. }
  44. PropertyField(m_MaximumMarchDistance);
  45. PropertyField(m_DistanceFade);
  46. PropertyField(m_Vignette);
  47. }
  48. }
  49. }