public Slot buildLayerUI(string name, string type, Slot slot, int depth) { UIBuilder uiBuilder3 = new UIBuilder(slot); uiBuilder3.Style.ForceExpandHeight = false; uiBuilder3.Style.ChildAlignment = Alignment.TopLeft; uiBuilder3.HorizontalLayout(4f, 0.0f, new Alignment?()); uiBuilder3.Style.MinHeight = 32f; uiBuilder3.Style.MinWidth = 32f; Button button1 = uiBuilder3.Button(); Expander expander = button1.Slot.AttachComponent <Expander>(true); TextExpandIndicator textExpandIndicator = button1.Slot.AttachComponent <TextExpandIndicator>(true); textExpandIndicator.Text.Target = (IField <string>)button1.Slot.GetComponentInChildren <Text>((Predicate <Text>)null, false).Content; uiBuilder3.Style.FlexibleWidth = 100f; Text text = uiBuilder3.Text(name, true, Alignment.MiddleLeft, true, (string)null); Button button2 = text.Slot.AttachComponent <Button>(true, (Action <Button>)null); MethodInfo privMethod = logixNodeSelector.GetType().GetMethod("OnOpenCategoryPressed", BindingFlags.NonPublic | BindingFlags.Instance); ButtonEventHandler <string> action = (ButtonEventHandler <string>)Delegate.CreateDelegate(typeof(ButtonEventHandler <string>), logixNodeSelector, privMethod); button2.SetupAction <string>(action, type, 0.3f); InteractionElement.ColorDriver colorDriver = button2.ColorDrivers.Add(); colorDriver.ColorDrive.Target = (IField <color>)text.Color; colorDriver.NormalColor.Value = color.Black; colorDriver.HighlightColor.Value = color.Blue; colorDriver.PressColor.Value = color.Cyan; //button2.SetupAction(new ButtonEventHandler(this.OnSlotNamePressed), 0.0f); //this._slotNameText.Target = text; uiBuilder3.Style.FlexibleWidth = -1f; uiBuilder3.NestOut(); uiBuilder3.Style.MinHeight = -1f; HorizontalLayout horizontalLayout = uiBuilder3.HorizontalLayout(4f, 0.0f, new Alignment?()); uiBuilder3.Style.MinWidth = 32f; uiBuilder3.Empty("Spacer"); uiBuilder3.Style.FlexibleWidth = 100f; //uiBuilder3.VerticalLayout(4f, 0.0f, new Alignment?()); Slot childrenSlot = uiBuilder3.VerticalLayout(4f, 0.0f, new Alignment?()).Slot; expander.SectionRoot.Target = horizontalLayout.Slot; textExpandIndicator.SectionRoot.Target = horizontalLayout.Slot; textExpandIndicator.ChildrenRoot.Target = childrenSlot; //if (depth<2) buildHierarchyLevel(childrenSlot, depth+1); expander.IsExpanded = false; //slot.ActiveSelf = depth == 0; return(childrenSlot); }