• 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 }


Gõ tìm kiếm nhanh...