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