/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ using UnityEngine; namespace Fungus { // /// Get or Set a property of a Material component /// [CommandInfo("Property", "Material", "Get or Set a property of a Material component")] [AddComponentMenu("")] public class MaterialProperty : BaseVariableProperty { //generated property public enum Property { Color, MainTexture, MainTextureOffset, MainTextureScale, RenderQueue, DoubleSidedGI, EnableInstancing, PassCount, } [SerializeField] protected Property property; [SerializeField] [VariableProperty(typeof(MaterialVariable))] protected MaterialVariable materialVar; [SerializeField] [VariableProperty(typeof(ColorVariable), typeof(TextureVariable), typeof(Vector2Variable), typeof(IntegerVariable), typeof(BooleanVariable))] protected Variable inOutVar; public override void OnEnter() { var iocol = inOutVar as ColorVariable; var iotex = inOutVar as TextureVariable; var iov2 = inOutVar as Vector2Variable; var ioi = inOutVar as IntegerVariable; var iob = inOutVar as BooleanVariable; var target = materialVar.Value; switch (getOrSet) { case GetSet.Get: switch (property) { case Property.Color: iocol.Value = target.color; break; case Property.MainTexture: iotex.Value = target.mainTexture; break; case Property.MainTextureOffset: iov2.Value = target.mainTextureOffset; break; case Property.MainTextureScale: iov2.Value = target.mainTextureScale; break; case Property.RenderQueue: ioi.Value = target.renderQueue; break; case Property.DoubleSidedGI: iob.Value = target.doubleSidedGI; break; case Property.EnableInstancing: iob.Value = target.enableInstancing; break; case Property.PassCount: ioi.Value = target.passCount; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; case GetSet.Set: switch (property) { case Property.Color: target.color = iocol.Value; break; case Property.MainTexture: target.mainTexture = iotex.Value; break; case Property.MainTextureOffset: target.mainTextureOffset = iov2.Value; break; case Property.MainTextureScale: target.mainTextureScale = iov2.Value; break; case Property.RenderQueue: target.renderQueue = ioi.Value; break; case Property.DoubleSidedGI: target.doubleSidedGI = iob.Value; break; case Property.EnableInstancing: target.enableInstancing = iob.Value; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; default: break; } Continue(); } public override string GetSummary() { if (materialVar == null) { return "Error: no materialVar set"; } if (inOutVar == null) { return "Error: no variable set to push or pull data to or from"; } return getOrSet.ToString() + " " + property.ToString(); } public override Color GetButtonColor() { return new Color32(235, 191, 217, 255); } public override bool HasReference(Variable variable) { if (materialVar == variable || inOutVar == variable) return true; return false; } } }