summaryrefslogtreecommitdiff
path: root/Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-04-07 21:06:10 +0800
committerchai <chaifix@163.com>2021-04-07 21:06:10 +0800
commitc7e2d8f773baa3955f17402b842eb43329c5f3a0 (patch)
tree5ba3985d20a2908a67fefa89579f6cf3a94b6a5a /Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs
parente7dfbec8e8634e767d78959941daf71a96e021cf (diff)
+UI_Effect
Diffstat (limited to 'Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs')
-rw-r--r--Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs b/Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs
new file mode 100644
index 0000000..435e66e
--- /dev/null
+++ b/Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs
@@ -0,0 +1,33 @@
+using System.Linq;
+using UnityEditor;
+using UnityEngine;
+
+namespace Coffee.UIEffects.Editors
+{
+ /// <summary>
+ /// Changes in this scope cause the graphic's material to be dirty.
+ /// When you change a property, it marks the material as dirty.
+ /// </summary>
+ internal class MaterialDirtyScope : EditorGUI.ChangeCheckScope
+ {
+ readonly Object[] targets;
+
+ public MaterialDirtyScope(Object[] targets)
+ {
+ this.targets = targets;
+ }
+
+ protected override void CloseScope()
+ {
+ if (changed)
+ {
+ foreach (var effect in targets.OfType<BaseMaterialEffect>())
+ {
+ effect.SetMaterialDirty();
+ }
+ }
+
+ base.CloseScope();
+ }
+ }
+}