using UnityEditor; using UnityEditorInternal; using UnityEngine; namespace Coffee.UIEffects.Editors { /// /// UIShadow editor. /// [CustomEditor(typeof(UIShadow))] [CanEditMultipleObjects] public class UIShadowEditor : Editor { UIEffect uiEffect; SerializedProperty _spStyle; SerializedProperty _spEffectDistance; SerializedProperty _spEffectColor; SerializedProperty _spUseGraphicAlpha; SerializedProperty _spBlurFactor; void OnEnable() { uiEffect = (target as UIShadow).GetComponent(); _spStyle = serializedObject.FindProperty("m_Style"); _spEffectDistance = serializedObject.FindProperty("m_EffectDistance"); _spEffectColor = serializedObject.FindProperty("m_EffectColor"); _spUseGraphicAlpha = serializedObject.FindProperty("m_UseGraphicAlpha"); _spBlurFactor = serializedObject.FindProperty("m_BlurFactor"); } /// /// Implement this function to make a custom inspector. /// public override void OnInspectorGUI() { serializedObject.Update(); //================ // Shadow setting. //================ EditorGUILayout.PropertyField(_spStyle); // When shadow is enable, show parameters. if (_spStyle.intValue != (int) ShadowStyle.None) { EditorGUI.indentLevel++; EditorGUILayout.PropertyField(_spEffectDistance); EditorGUILayout.PropertyField(_spEffectColor); EditorGUILayout.PropertyField(_spUseGraphicAlpha); if (uiEffect && uiEffect.blurMode != BlurMode.None) { EditorGUILayout.PropertyField(_spBlurFactor); } EditorGUI.indentLevel--; } serializedObject.ApplyModifiedProperties(); } } }