CreaseShadingEditor.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using UnityEditor;
  3. using UnityEditor.AnimatedValues;
  4. using UnityEngine;
  5. namespace UnityStandardAssets.ImageEffects
  6. {
  7. [CustomEditor(typeof(CreaseShading))]
  8. class CreaseShadingEditor : Editor {
  9. SerializedObject serObj;
  10. SerializedProperty m_intensity;
  11. SerializedProperty m_softness;
  12. SerializedProperty m_spread;
  13. AnimBool m_showSoftnessWarning = new AnimBool();
  14. AnimBool m_showSpreadWarning = new AnimBool();
  15. private bool softnessWarningValue { get { return m_softness.intValue > 4; } }
  16. private bool spreadWarningValue { get { return m_spread.floatValue > 4; } }
  17. void OnEnable () {
  18. serObj = new SerializedObject (target);
  19. m_intensity = serObj.FindProperty("intensity");
  20. m_softness = serObj.FindProperty("softness");
  21. m_spread = serObj.FindProperty("spread");
  22. m_showSoftnessWarning.valueChanged.AddListener(Repaint);
  23. m_showSpreadWarning.valueChanged.AddListener(Repaint);
  24. m_showSoftnessWarning.value = softnessWarningValue;
  25. m_showSpreadWarning.value = spreadWarningValue;
  26. }
  27. public override void OnInspectorGUI () {
  28. serObj.Update ();
  29. EditorGUILayout.Slider(m_intensity, -5.0f, 5.0f, new GUIContent("Intensity"));
  30. EditorGUILayout.IntSlider(m_softness, 0, 15, new GUIContent("Softness"));
  31. m_showSoftnessWarning.target = softnessWarningValue;
  32. if (EditorGUILayout.BeginFadeGroup(m_showSoftnessWarning.faded))
  33. {
  34. EditorGUILayout.HelpBox("High Softness value might reduce performance.", MessageType.Warning, false);
  35. }
  36. EditorGUILayout.EndFadeGroup();
  37. EditorGUILayout.Slider(m_spread, 0.0f, 50.0f, new GUIContent("Spread"));
  38. m_showSpreadWarning.target = spreadWarningValue;
  39. if (EditorGUILayout.BeginFadeGroup(m_showSpreadWarning.faded))
  40. {
  41. EditorGUILayout.HelpBox("High Spread value might introduce visual artifacts.", MessageType.Warning, false);
  42. }
  43. EditorGUILayout.EndFadeGroup();
  44. serObj.ApplyModifiedProperties ();
  45. }
  46. }
  47. }