DepthOfFieldEditor.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using UnityEngine.Rendering.Universal;
  2. namespace UnityEditor.Rendering.Universal
  3. {
  4. [VolumeComponentEditor(typeof(DepthOfField))]
  5. sealed class DepthOfFieldEditor : VolumeComponentEditor
  6. {
  7. SerializedDataParameter m_Mode;
  8. SerializedDataParameter m_GaussianStart;
  9. SerializedDataParameter m_GaussianEnd;
  10. SerializedDataParameter m_GaussianMaxRadius;
  11. SerializedDataParameter m_HighQualitySampling;
  12. SerializedDataParameter m_FocusDistance;
  13. SerializedDataParameter m_FocalLength;
  14. SerializedDataParameter m_Aperture;
  15. SerializedDataParameter m_BladeCount;
  16. SerializedDataParameter m_BladeCurvature;
  17. SerializedDataParameter m_BladeRotation;
  18. public override void OnEnable()
  19. {
  20. var o = new PropertyFetcher<DepthOfField>(serializedObject);
  21. m_Mode = Unpack(o.Find(x => x.mode));
  22. m_GaussianStart = Unpack(o.Find(x => x.gaussianStart));
  23. m_GaussianEnd = Unpack(o.Find(x => x.gaussianEnd));
  24. m_GaussianMaxRadius = Unpack(o.Find(x => x.gaussianMaxRadius));
  25. m_HighQualitySampling = Unpack(o.Find(x => x.highQualitySampling));
  26. m_FocusDistance = Unpack(o.Find(x => x.focusDistance));
  27. m_FocalLength = Unpack(o.Find(x => x.focalLength));
  28. m_Aperture = Unpack(o.Find(x => x.aperture));
  29. m_BladeCount = Unpack(o.Find(x => x.bladeCount));
  30. m_BladeCurvature = Unpack(o.Find(x => x.bladeCurvature));
  31. m_BladeRotation = Unpack(o.Find(x => x.bladeRotation));
  32. }
  33. public override void OnInspectorGUI()
  34. {
  35. if (UniversalRenderPipeline.asset?.postProcessingFeatureSet == PostProcessingFeatureSet.PostProcessingV2)
  36. {
  37. EditorGUILayout.HelpBox(UniversalRenderPipelineAssetEditor.Styles.postProcessingGlobalWarning, MessageType.Warning);
  38. return;
  39. }
  40. PropertyField(m_Mode);
  41. if (m_Mode.value.intValue == (int)DepthOfFieldMode.Gaussian)
  42. {
  43. PropertyField(m_GaussianStart, EditorGUIUtility.TrTextContent("Start"));
  44. PropertyField(m_GaussianEnd, EditorGUIUtility.TrTextContent("End"));
  45. PropertyField(m_GaussianMaxRadius, EditorGUIUtility.TrTextContent("Max Radius"));
  46. PropertyField(m_HighQualitySampling);
  47. }
  48. else if (m_Mode.value.intValue == (int)DepthOfFieldMode.Bokeh)
  49. {
  50. PropertyField(m_FocusDistance);
  51. PropertyField(m_FocalLength);
  52. PropertyField(m_Aperture);
  53. PropertyField(m_BladeCount);
  54. PropertyField(m_BladeCurvature);
  55. PropertyField(m_BladeRotation);
  56. }
  57. }
  58. }
  59. }