DynamicOcclusionDepthBufferEditor.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using UnityEditor;
  4. namespace VLB
  5. {
  6. [CustomEditor(typeof(DynamicOcclusionDepthBuffer))]
  7. [CanEditMultipleObjects]
  8. public class DynamicOcclusionDepthBufferEditor : DynamicOcclusionAbstractBaseEditor<DynamicOcclusionDepthBuffer>
  9. {
  10. SerializedProperty depthMapResolution, layerMask, useOcclusionCulling, fadeDistanceToSurface;
  11. protected override void OnEnable()
  12. {
  13. base.OnEnable();
  14. depthMapResolution = FindProperty((DynamicOcclusionDepthBuffer x) => x.depthMapResolution);
  15. layerMask = FindProperty((DynamicOcclusionDepthBuffer x) => x.layerMask);
  16. useOcclusionCulling = FindProperty((DynamicOcclusionDepthBuffer x) => x.useOcclusionCulling);
  17. fadeDistanceToSurface = FindProperty((DynamicOcclusionDepthBuffer x) => x.fadeDistanceToSurface);
  18. }
  19. public override void OnInspectorGUI()
  20. {
  21. base.OnInspectorGUI();
  22. if (m_Targets.HasAtLeastOneTargetWith((DynamicOcclusionDepthBuffer comp) => { return comp.GetComponent<VolumetricLightBeam>().dimensions == Dimensions.Dim2D; }))
  23. {
  24. EditorGUILayout.HelpBox(EditorStrings.DynOcclusion.HelpDepthBufferAndBeam2D, MessageType.Warning);
  25. }
  26. if (FoldableHeader.Begin(this, EditorStrings.DynOcclusion.HeaderCamera))
  27. {
  28. EditorGUILayout.PropertyField(layerMask, EditorStrings.DynOcclusion.LayerMask);
  29. if(Config.Instance.geometryOverrideLayer == false)
  30. {
  31. EditorGUILayout.HelpBox(EditorStrings.DynOcclusion.HelpOverrideLayer, MessageType.Warning);
  32. }
  33. else if (m_Targets.HasAtLeastOneTargetWith((DynamicOcclusionDepthBuffer comp) => { return comp.HasLayerMaskIssues(); }))
  34. {
  35. EditorGUILayout.HelpBox(EditorStrings.DynOcclusion.HelpLayerMaskIssues, MessageType.Warning);
  36. }
  37. EditorGUILayout.PropertyField(useOcclusionCulling, EditorStrings.DynOcclusion.DepthBufferOcclusionCulling);
  38. EditorGUILayout.PropertyField(depthMapResolution, EditorStrings.DynOcclusion.DepthBufferDepthMapResolution);
  39. }
  40. FoldableHeader.End();
  41. if (FoldableHeader.Begin(this, EditorStrings.DynOcclusion.HeaderOccluderSurface))
  42. {
  43. EditorGUILayout.PropertyField(fadeDistanceToSurface, EditorStrings.DynOcclusion.FadeDistanceToSurface);
  44. }
  45. FoldableHeader.End();
  46. DisplayCommonInspector();
  47. serializedObject.ApplyModifiedProperties();
  48. }
  49. }
  50. }
  51. #endif