diff options
author | chai <chaifix@163.com> | 2021-04-07 21:06:10 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-04-07 21:06:10 +0800 |
commit | c7e2d8f773baa3955f17402b842eb43329c5f3a0 (patch) | |
tree | 5ba3985d20a2908a67fefa89579f6cf3a94b6a5a /Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs | |
parent | e7dfbec8e8634e767d78959941daf71a96e021cf (diff) |
+UI_Effect
Diffstat (limited to 'Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs')
-rw-r--r-- | Assets/Test/UIEffect/Program/Editor/MaterialDirtyScope.cs | 33 |
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(); + } + } +} |