using System.Reflection; namespace UnityEditor.ShaderGraph { [Title("Utility", "UGUI", "Selectable State Switch")] class SelectableBranchNode : CodeFunctionNode { public SelectableBranchNode() { name = "Selectable State Switch"; synonyms = new string[] { "switch", "ui", "selectable" }; } protected override MethodInfo GetFunctionToConvert() { return GetType().GetMethod("Unity_Switch", BindingFlags.Static | BindingFlags.NonPublic); } static string Unity_Switch( [Slot(0, Binding.None)] Vector1 State, [Slot(1, Binding.None, 1, 1, 1, 1)] DynamicDimensionVector Normal, [Slot(2, Binding.None, 0, 0, 0, 0)] DynamicDimensionVector Highlighted, [Slot(3, Binding.None, 0, 0, 0, 0)] DynamicDimensionVector Pressed, [Slot(4, Binding.None, 0, 0, 0, 0)] DynamicDimensionVector Selected, [Slot(5, Binding.None, 0, 0, 0, 0)] DynamicDimensionVector Disabled, [Slot(6, Binding.None)] out DynamicDimensionVector Out) { return @" { [branch] switch(State) { case 0: Out = Normal; break; case 1: Out = Highlighted; break; case 2: Out = Pressed; break; case 3: Out = Selected; break; case 4: Out = Disabled; break; default: Out = Normal; break; } } "; } } }