UIShadowEditor.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using UnityEditor;
  2. using UnityEditorInternal;
  3. using UnityEngine;
  4. namespace Coffee.UIEffects.Editors
  5. {
  6. /// <summary>
  7. /// UIShadow editor.
  8. /// </summary>
  9. [CustomEditor(typeof(UIShadow))]
  10. [CanEditMultipleObjects]
  11. public class UIShadowEditor : Editor
  12. {
  13. UIEffect uiEffect;
  14. SerializedProperty _spStyle;
  15. SerializedProperty _spEffectDistance;
  16. SerializedProperty _spEffectColor;
  17. SerializedProperty _spUseGraphicAlpha;
  18. SerializedProperty _spBlurFactor;
  19. void OnEnable()
  20. {
  21. uiEffect = (target as UIShadow).GetComponent<UIEffect>();
  22. _spStyle = serializedObject.FindProperty("m_Style");
  23. _spEffectDistance = serializedObject.FindProperty("m_EffectDistance");
  24. _spEffectColor = serializedObject.FindProperty("m_EffectColor");
  25. _spUseGraphicAlpha = serializedObject.FindProperty("m_UseGraphicAlpha");
  26. _spBlurFactor = serializedObject.FindProperty("m_BlurFactor");
  27. }
  28. /// <summary>
  29. /// Implement this function to make a custom inspector.
  30. /// </summary>
  31. public override void OnInspectorGUI()
  32. {
  33. serializedObject.Update();
  34. //================
  35. // Shadow setting.
  36. //================
  37. EditorGUILayout.PropertyField(_spStyle);
  38. // When shadow is enable, show parameters.
  39. if (_spStyle.intValue != (int) ShadowStyle.None)
  40. {
  41. EditorGUI.indentLevel++;
  42. EditorGUILayout.PropertyField(_spEffectDistance);
  43. EditorGUILayout.PropertyField(_spEffectColor);
  44. EditorGUILayout.PropertyField(_spUseGraphicAlpha);
  45. if (uiEffect && uiEffect.blurMode != BlurMode.None)
  46. {
  47. EditorGUILayout.PropertyField(_spBlurFactor);
  48. }
  49. EditorGUI.indentLevel--;
  50. }
  51. serializedObject.ApplyModifiedProperties();
  52. }
  53. }
  54. }