@script ExecuteInEditMode() @CustomEditor (EdgeDetectEffectNormals) class EdgeDetectEffectNormalsEditor extends Editor { var serObj : SerializedObject; var mode : SerializedProperty; var sensitivityDepth : SerializedProperty; var sensitivityNormals : SerializedProperty; var edgesOnly : SerializedProperty; var edgesOnlyBgColor : SerializedProperty; function OnEnable () { serObj = new SerializedObject (target); mode = serObj.FindProperty("mode"); sensitivityDepth = serObj.FindProperty("sensitivityDepth"); sensitivityNormals = serObj.FindProperty("sensitivityNormals"); edgesOnly = serObj.FindProperty("edgesOnly"); edgesOnlyBgColor = serObj.FindProperty("edgesOnlyBgColor"); } function OnInspectorGUI () { serObj.Update (); EditorGUILayout.PropertyField (mode, new GUIContent("Mode")); GUILayout.Label ("Edge sensitivity"); EditorGUILayout.PropertyField (sensitivityDepth, new GUIContent("Depth")); EditorGUILayout.PropertyField (sensitivityNormals, new GUIContent("Normals")); EditorGUILayout.Separator (); GUILayout.Label ("Background options"); edgesOnly.floatValue = EditorGUILayout.Slider ("Edges only", edgesOnly.floatValue, 0.0, 1.0); EditorGUILayout.PropertyField (edgesOnlyBgColor, new GUIContent ("Background")); serObj.ApplyModifiedProperties(); } }