using System; using System.Collections; using System.Collections.Generic; using UnityEditor.Experimental.UIElements; using UnityEngine; using UnityEngine.Experimental.UIElements; using UnityEditor.Graphing.Util; using UnityEditor.ShaderGraph.Drawing.Controls; namespace UnityEditor.ShaderGraph.Drawing { public class UnlitSettingsView : VisualElement { UnlitMasterNode m_Node; public UnlitSettingsView(UnlitMasterNode node) { m_Node = node; PropertySheet ps = new PropertySheet(); ps.Add(new PropertyRow(new Label("Surface")), (row) => { row.Add(new EnumField(SurfaceType.Opaque), (field) => { field.value = m_Node.surfaceType; field.OnValueChanged(ChangeSurface); }); }); ps.Add(new PropertyRow(new Label("Blend")), (row) => { row.Add(new EnumField(AlphaMode.Additive), (field) => { field.value = m_Node.alphaMode; field.OnValueChanged(ChangeAlphaMode); }); }); ps.Add(new PropertyRow(new Label("Two Sided")), (row) => { row.Add(new Toggle(), (toggle) => { toggle.value = m_Node.twoSided.isOn; toggle.OnToggleChanged(ChangeTwoSided); }); }); Add(ps); } void ChangeSurface(ChangeEvent evt) { if (Equals(m_Node.surfaceType, evt.newValue)) return; m_Node.owner.owner.RegisterCompleteObjectUndo("Surface Change"); m_Node.surfaceType = (SurfaceType)evt.newValue; } void ChangeAlphaMode(ChangeEvent evt) { if (Equals(m_Node.alphaMode, evt.newValue)) return; m_Node.owner.owner.RegisterCompleteObjectUndo("Alpha Mode Change"); m_Node.alphaMode = (AlphaMode)evt.newValue; } void ChangeTwoSided(ChangeEvent evt) { m_Node.owner.owner.RegisterCompleteObjectUndo("Two Sided Change"); ToggleData td = m_Node.twoSided; td.isOn = evt.newValue; m_Node.twoSided = td; } } }