diff --git a/Source/ConformalDecals/MaterialProperties/MaterialKeywordProperty.cs b/Source/ConformalDecals/MaterialProperties/MaterialKeywordProperty.cs new file mode 100644 index 0000000..c9ee240 --- /dev/null +++ b/Source/ConformalDecals/MaterialProperties/MaterialKeywordProperty.cs @@ -0,0 +1,19 @@ +using ConformalDecals.Util; +using UnityEngine; + +namespace ConformalDecals.MaterialProperties { + public class MaterialKeywordProperty : MaterialProperty { + [SerializeField] public bool value = true; + + public override void ParseNode(ConfigNode node) { + base.ParseNode(node); + + ParseUtil.ParseBoolIndirect(ref value, node, "value"); + } + + public override void Modify(Material material) { + if (value) material.EnableKeyword(_propertyName); + else material.DisableKeyword(_propertyName); + } + } +} \ No newline at end of file diff --git a/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs index fbbeacf..3299b0d 100644 --- a/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs +++ b/Source/ConformalDecals/MaterialProperties/MaterialTextureProperty.cs @@ -67,6 +67,7 @@ namespace ConformalDecals.MaterialProperties { material.SetTexture(_propertyID, _texture); material.SetTextureOffset(_propertyID, _textureOffset); material.SetTextureScale(_propertyID, _textureScale * _scale); + if (_propertyName != "_Decal") material.EnableKeyword("DECAL" + _propertyName.ToUpper()); } public void SetScale(Vector2 scale) {