• DepthOfFieldDeprecatedEditor.cs
  • /
  • /
  • /
  • /
1 using System;
2 using
UnityEditor;
3 using
UnityEngine;
4
5 namespace
UnityStandardAssets.ImageEffects
6 {
7     
[CustomEditor (typeof(DepthOfFieldDeprecated))]
8     
class DepthOfFieldDeprecatedEditor : Editor
9     {
10         SerializedObject serObj;
11
12         SerializedProperty simpleTweakMode;
13
14         SerializedProperty focalPoint;
15         SerializedProperty smoothness;
16
17         SerializedProperty focalSize;
18
19         SerializedProperty focalZDistance;
20         SerializedProperty focalStartCurve;
21         SerializedProperty focalEndCurve;
22
23         SerializedProperty visualizeCoc;
24
25         SerializedProperty resolution;
26         SerializedProperty quality;
27
28         SerializedProperty objectFocus;
29
30         SerializedProperty bokeh;
31         SerializedProperty bokehScale;
32         SerializedProperty bokehIntensity;
33         SerializedProperty bokehThresholdLuminance;
34         SerializedProperty bokehThresholdContrast;
35         SerializedProperty bokehDownsample;
36         SerializedProperty bokehTexture;
37         SerializedProperty bokehDestination;
38
39         SerializedProperty bluriness;
40         SerializedProperty maxBlurSpread;
41         SerializedProperty foregroundBlurExtrude;
42
43         
void OnEnable () {
44             serObj =
new SerializedObject (target);
45
46             simpleTweakMode = serObj.FindProperty (
"simpleTweakMode");
47
48             
// simple tweak mode
49             focalPoint = serObj.FindProperty (
"focalPoint");
50             smoothness = serObj.FindProperty (
"smoothness");
51
52             
// complex tweak mode
53             focalZDistance = serObj.FindProperty (
"focalZDistance");
54             focalStartCurve = serObj.FindProperty (
"focalZStartCurve");
55             focalEndCurve = serObj.FindProperty (
"focalZEndCurve");
56             focalSize = serObj.FindProperty (
"focalSize");
57
58             visualizeCoc = serObj.FindProperty (
"visualize");
59
60             objectFocus = serObj.FindProperty (
"objectFocus");
61
62             resolution = serObj.FindProperty (
"resolution");
63             quality = serObj.FindProperty (
"quality");
64             bokehThresholdContrast = serObj.FindProperty (
"bokehThresholdContrast");
65             bokehThresholdLuminance = serObj.FindProperty (
"bokehThresholdLuminance");
66
67             bokeh = serObj.FindProperty (
"bokeh");
68             bokehScale = serObj.FindProperty (
"bokehScale");
69             bokehIntensity = serObj.FindProperty (
"bokehIntensity");
70             bokehDownsample = serObj.FindProperty (
"bokehDownsample");
71             bokehTexture = serObj.FindProperty (
"bokehTexture");
72             bokehDestination = serObj.FindProperty (
"bokehDestination");
73
74             bluriness = serObj.FindProperty (
"bluriness");
75             maxBlurSpread = serObj.FindProperty (
"maxBlurSpread");
76             foregroundBlurExtrude = serObj.FindProperty (
"foregroundBlurExtrude");
77         }
78
79
80         
public override void OnInspectorGUI () {
81             serObj.Update ();
82
83             GameObject go = (target
as DepthOfFieldDeprecated).gameObject;
84
85             
if (!go)
86                 
return;
87
88             
if (!go.GetComponent<Camera>())
89                 
return;
90
91             
if (simpleTweakMode.boolValue)
92                 GUILayout.Label (
"Current: "+go.GetComponent<Camera>().name+", near "+go.GetComponent<Camera>().nearClipPlane+", far: "+go.GetComponent<Camera>().farClipPlane+", focal: "+focalPoint.floatValue, EditorStyles.miniBoldLabel);
93             
else
94                 GUILayout.Label (
"Current: "+go.GetComponent<Camera>().name+", near "+go.GetComponent<Camera>().nearClipPlane+", far: "+go.GetComponent<Camera>().farClipPlane+", focal: "+focalZDistance.floatValue, EditorStyles.miniBoldLabel);
95
96             EditorGUILayout.PropertyField (resolution,
new GUIContent("Resolution"));
97             EditorGUILayout.PropertyField (quality,
new GUIContent("Quality"));
98
99             EditorGUILayout.PropertyField (simpleTweakMode,
new GUIContent("Simple tweak"));
100             EditorGUILayout.PropertyField (visualizeCoc,
new GUIContent("Visualize focus"));
101             EditorGUILayout.PropertyField (bokeh,
new GUIContent("Enable bokeh"));
102
103
104             EditorGUILayout.Separator ();
105
106             GUILayout.Label (
"Focal Settings", EditorStyles.boldLabel);
107
108             
if (simpleTweakMode.boolValue) {
109                 focalPoint.floatValue = EditorGUILayout.Slider (
"Focal distance", focalPoint.floatValue, go.GetComponent<Camera>().nearClipPlane, go.GetComponent<Camera>().farClipPlane);
110                 EditorGUILayout.PropertyField (objectFocus,
new GUIContent("Transform"));
111                 EditorGUILayout.PropertyField (smoothness,
new GUIContent("Smoothness"));
112                 focalSize.floatValue = EditorGUILayout.Slider (
"Focal size", focalSize.floatValue, 0.0f, (go.GetComponent<Camera>().farClipPlane - go.GetComponent<Camera>().nearClipPlane));
113             }
114             
else {
115                 focalZDistance.floatValue = EditorGUILayout.Slider (
"Distance", focalZDistance.floatValue, go.GetComponent<Camera>().nearClipPlane, go.GetComponent<Camera>().farClipPlane);
116                 EditorGUILayout.PropertyField (objectFocus,
new GUIContent("Transform"));
117                 focalSize.floatValue = EditorGUILayout.Slider (
"Size", focalSize.floatValue, 0.0f, (go.GetComponent<Camera>().farClipPlane - go.GetComponent<Camera>().nearClipPlane));
118                 focalStartCurve.floatValue = EditorGUILayout.Slider (
"Start curve", focalStartCurve.floatValue, 0.05f, 20.0f);
119                 focalEndCurve.floatValue = EditorGUILayout.Slider (
"End curve", focalEndCurve.floatValue, 0.05f, 20.0f);
120             }
121
122             EditorGUILayout.Separator ();
123
124             GUILayout.Label (
"Blur (Fore- and Background)", EditorStyles.boldLabel);
125             EditorGUILayout.PropertyField (bluriness,
new GUIContent("Blurriness"));
126             EditorGUILayout.PropertyField (maxBlurSpread,
new GUIContent("Blur spread"));
127
128             
if (quality.enumValueIndex > 0) {
129                 EditorGUILayout.PropertyField (foregroundBlurExtrude,
new GUIContent("Foreground size"));
130             }
131
132             EditorGUILayout.Separator ();
133
134             
if (bokeh.boolValue) {
135                 EditorGUILayout.Separator ();
136                 GUILayout.Label (
"Bokeh Settings", EditorStyles.boldLabel);
137                 EditorGUILayout.PropertyField (bokehDestination,
new GUIContent("Destination"));
138                 bokehIntensity.floatValue = EditorGUILayout.Slider (
"Intensity", bokehIntensity.floatValue, 0.0f, 1.0f);
139                 bokehThresholdLuminance.floatValue = EditorGUILayout.Slider (
"Min luminance", bokehThresholdLuminance.floatValue, 0.0f, 0.99f);
140                 bokehThresholdContrast.floatValue = EditorGUILayout.Slider (
"Min contrast", bokehThresholdContrast.floatValue, 0.0f, 0.25f);
141                 bokehDownsample.intValue = EditorGUILayout.IntSlider (
"Downsample", bokehDownsample.intValue, 1, 3);
142                 bokehScale.floatValue = EditorGUILayout.Slider (
"Size scale", bokehScale.floatValue, 0.0f, 20.0f);
143                 EditorGUILayout.PropertyField (bokehTexture ,
new GUIContent("Texture mask"));
144             }
145
146             serObj.ApplyModifiedProperties();
147         }
148     }
149 }


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