using UnityEditor; using UnityEngine; [CustomEditor (typeof(Antialiasing))] public class AntialiasingEditor : Editor { SerializedObject serObj; SerializedProperty mode; SerializedProperty showGeneratedNormals; SerializedProperty offsetScale; SerializedProperty blurRadius; SerializedProperty dlaaSharp; SerializedProperty edgeThresholdMin; SerializedProperty edgeThreshold; SerializedProperty edgeSharpness; void OnEnable () { serObj = new SerializedObject (target); mode = serObj.FindProperty ("mode"); showGeneratedNormals = serObj.FindProperty ("showGeneratedNormals"); offsetScale = serObj.FindProperty ("offsetScale"); blurRadius = serObj.FindProperty ("blurRadius"); dlaaSharp = serObj.FindProperty ("dlaaSharp"); edgeThresholdMin = serObj.FindProperty("edgeThresholdMin"); edgeThreshold = serObj.FindProperty("edgeThreshold"); edgeSharpness = serObj.FindProperty("edgeSharpness"); } public override void OnInspectorGUI () { serObj.Update (); GUILayout.Label("Luminance based fullscreen antialiasing", EditorStyles.miniBoldLabel); EditorGUILayout.PropertyField (mode, new GUIContent ("Technique")); Material mat = (target as Antialiasing).CurrentAAMaterial (); if(null == mat && (target as Antialiasing).enabled) { EditorGUILayout.HelpBox("This AA technique is currently not supported. Choose a different technique or disable the effect and use MSAA instead.", MessageType.Warning); } if (mode.enumValueIndex == (decimal) AAMode.NFAA) { EditorGUILayout.PropertyField (offsetScale, new GUIContent ("Edge Detect Ofs")); EditorGUILayout.PropertyField (blurRadius, new GUIContent ("Blur Radius")); EditorGUILayout.PropertyField (showGeneratedNormals, new GUIContent ("Show Normals")); } else if (mode.enumValueIndex == (decimal) AAMode.DLAA) { EditorGUILayout.PropertyField (dlaaSharp, new GUIContent ("Sharp")); } else if (mode.enumValueIndex == (decimal) AAMode.FXAA3Console) { EditorGUILayout.PropertyField (edgeThresholdMin, new GUIContent ("Edge Min Threshhold")); EditorGUILayout.PropertyField (edgeThreshold, new GUIContent ("Edge Threshhold")); EditorGUILayout.PropertyField (edgeSharpness, new GUIContent ("Edge Sharpness")); } serObj.ApplyModifiedProperties(); } }