Skip to content

Commit d0a3ca6

Browse files
committed
feat: add Shadow Color and Shadow Blur options
1 parent a66baea commit d0a3ca6

14 files changed

+662
-242
lines changed

Packages/src/Editor/UIEffectEditor.cs

+18-3
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ public class UIEffect2Editor : Editor
5252
private SerializedProperty _shadowDistanceY;
5353
private SerializedProperty _shadowIteration;
5454
private SerializedProperty _shadowFade;
55-
private SerializedProperty _shadowEffectOnOrigin;
5655
private SerializedProperty _shadowMirrorScale;
56+
private SerializedProperty _shadowBlurIntensity;
57+
private SerializedProperty _shadowColorFilter;
58+
private SerializedProperty _shadowColor;
5759

5860
private bool _expandOthers;
5961
private SerializedProperty _allowExtendVertex;
@@ -102,8 +104,10 @@ private void OnEnable()
102104
_shadowDistanceY = _shadowDistance.FindPropertyRelative("y");
103105
_shadowIteration = serializedObject.FindProperty("m_ShadowIteration");
104106
_shadowFade = serializedObject.FindProperty("m_ShadowFade");
105-
_shadowEffectOnOrigin = serializedObject.FindProperty("m_ShadowEffectOnOrigin");
106107
_shadowMirrorScale = serializedObject.FindProperty("m_ShadowMirrorScale");
108+
_shadowBlurIntensity = serializedObject.FindProperty("m_ShadowBlurIntensity");
109+
_shadowColorFilter = serializedObject.FindProperty("m_ShadowColorFilter");
110+
_shadowColor = serializedObject.FindProperty("m_ShadowColor");
107111

108112
_allowExtendVertex = serializedObject.FindProperty("m_AllowExtendVertex");
109113
}
@@ -231,8 +235,19 @@ public void DrawProperties()
231235
EditorGUILayout.PropertyField(_shadowIteration);
232236
}
233237

238+
EditorGUILayout.PropertyField(_shadowColorFilter);
239+
EditorGUILayout.PropertyField(_shadowColor);
234240
EditorGUILayout.PropertyField(_shadowFade);
235-
EditorGUILayout.PropertyField(_shadowEffectOnOrigin);
241+
242+
switch ((SamplingFilter)_samplingFilter.intValue)
243+
{
244+
case SamplingFilter.BlurFast:
245+
case SamplingFilter.BlurMedium:
246+
case SamplingFilter.BlurDetail:
247+
EditorGUILayout.PropertyField(_shadowBlurIntensity);
248+
break;
249+
}
250+
236251
EditorGUI.indentLevel--;
237252
}
238253

Packages/src/Runtime/UIEffect.cs

+53-16
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,21 @@ public class UIEffect : UIEffectBase
120120
[SerializeField]
121121
protected float m_ShadowFade = 0.9f;
122122

123-
[SerializeField]
124-
protected bool m_ShadowEffectOnOrigin = false;
125-
126123
[Range(0, 2)]
127124
[SerializeField]
128125
protected float m_ShadowMirrorScale = 0.5f;
129126

127+
[Range(0, 1)]
128+
[SerializeField]
129+
protected float m_ShadowBlurIntensity = 1;
130+
131+
[SerializeField]
132+
protected ColorFilter m_ShadowColorFilter = ColorFilter.Replace;
133+
134+
[ColorUsage(false, true)]
135+
[SerializeField]
136+
protected Color m_ShadowColor = Color.white;
137+
130138
[SerializeField]
131139
protected bool m_AllowExtendVertex = true;
132140

@@ -501,26 +509,49 @@ public int shadowIteration
501509
}
502510
}
503511

504-
public bool shadowEffectOnOrigin
512+
public float shadowMirrorScale
505513
{
506-
get => m_ShadowEffectOnOrigin;
514+
get => m_ShadowMirrorScale;
507515
set
508516
{
509-
if (m_ShadowEffectOnOrigin == value) return;
510-
m_ShadowEffectOnOrigin = value;
517+
value = Mathf.Clamp(value, 0f, 2f);
518+
if (Mathf.Approximately(m_ShadowMirrorScale, value)) return;
519+
context.shadowMirrorScale = m_ShadowMirrorScale = value;
511520
SetVerticesDirty();
512521
}
513522
}
514523

515-
public float shadowMirrorScale
524+
public float shadowBlurIntensity
516525
{
517-
get => m_ShadowMirrorScale;
526+
get => m_ShadowBlurIntensity;
518527
set
519528
{
520-
value = Mathf.Clamp(value, 0f, 2f);
521-
if (Mathf.Approximately(m_ShadowMirrorScale, value)) return;
522-
context.shadowMirrorScale = m_ShadowMirrorScale = value;
523-
SetVerticesDirty();
529+
value = Mathf.Clamp(value, 0, 1);
530+
if (Mathf.Approximately(m_ShadowBlurIntensity, value)) return;
531+
context.shadowBlurIntensity = m_ShadowBlurIntensity = value;
532+
ApplyContextToMaterial();
533+
}
534+
}
535+
536+
public ColorFilter shadowColorFilter
537+
{
538+
get => m_ShadowColorFilter;
539+
set
540+
{
541+
if (m_ShadowColorFilter == value) return;
542+
context.shadowColorFilter = m_ShadowColorFilter = value;
543+
ApplyContextToMaterial();
544+
}
545+
}
546+
547+
public Color shadowColor
548+
{
549+
get => m_ShadowColor;
550+
set
551+
{
552+
if (m_ShadowColor == value) return;
553+
context.shadowColor = m_ShadowColor = value;
554+
ApplyContextToMaterial();
524555
}
525556
}
526557

@@ -616,8 +647,10 @@ protected override void UpdateContext(UIEffectContext c)
616647
c.shadowDistance = m_ShadowDistance;
617648
c.shadowIteration = m_ShadowIteration;
618649
c.shadowFade = m_ShadowFade;
619-
c.shadowEffectOnOrigin = m_ShadowEffectOnOrigin;
620650
c.shadowMirrorScale = m_ShadowMirrorScale;
651+
c.shadowBlurIntensity = m_ShadowBlurIntensity;
652+
c.shadowColorFilter = m_ShadowColorFilter;
653+
c.shadowColor = m_ShadowColor;
621654
c.allowExtendVertex = m_AllowExtendVertex;
622655
}
623656

@@ -713,8 +746,10 @@ public void LoadPreset(UIEffect preset)
713746
m_ShadowDistance = preset.m_ShadowDistance;
714747
m_ShadowIteration = preset.m_ShadowIteration;
715748
m_ShadowFade = preset.m_ShadowFade;
716-
m_ShadowEffectOnOrigin = preset.m_ShadowEffectOnOrigin;
717749
m_ShadowMirrorScale = preset.m_ShadowMirrorScale;
750+
m_ShadowBlurIntensity = preset.m_ShadowBlurIntensity;
751+
m_ShadowColorFilter = preset.m_ShadowColorFilter;
752+
m_ShadowColor = preset.m_ShadowColor;
718753

719754
UpdateContext(context);
720755
ApplyContextToMaterial();
@@ -761,8 +796,10 @@ internal void CopyFrom(UIEffectContext c)
761796
m_ShadowDistance = c.shadowDistance;
762797
m_ShadowIteration = c.shadowIteration;
763798
m_ShadowFade = c.shadowFade;
764-
m_ShadowEffectOnOrigin = c.shadowEffectOnOrigin;
765799
m_ShadowMirrorScale = c.shadowMirrorScale;
800+
m_ShadowBlurIntensity = c.shadowBlurIntensity;
801+
m_ShadowColorFilter = c.shadowColorFilter;
802+
m_ShadowColor = c.shadowColor;
766803

767804
m_AllowExtendVertex = c.allowExtendVertex;
768805

0 commit comments

Comments
 (0)