protected override void OnAttach() { base.OnAttach(); sep = "\t"; //CONTAINING SLOT AND BASE CANVAS mainSlot = this.LocalUserSpace.AddSlot("LogiX Node Browser"); NeosPanel neosPanel = mainSlot.AttachComponent <NeosPanel>(true, (Action <NeosPanel>)null); neosPanel.Title = "Logix/Componer browser"; neosPanel.Padding.Value = 0.005f; neosPanel.ZPadding.Value = 0.005f; neosPanel.Thickness.Value = 0.01f; neosPanel.AddCloseButton(); neosPanel.AddParentButton(); UIBuilder uiBuilder1 = new UIBuilder(neosPanel.ContentSlot, 1000f, 1000f, 0.0005f); //Canvas component = neosPanel.ContentSlot.GetComponent<Canvas>((Predicate<Canvas>)null, false); color color1 = new color(1f, 1f, 1f, 0.2f); uiBuilder1.Panel(in color1, false); //Search Footer RectTransform searchFooter, mainContent; uiBuilder1.HorizontalFooter(64f, out searchFooter, out mainContent); UIBuilder searchUI = new UIBuilder(searchFooter); TextField textfield = searchUI.TextField(); Action sendRequest = this.BuildSearchLogix(textfield.Text.Content.ReferenceID); var editorEvents = textfield.Slot.AddSlot("logix").AttachComponent <Interaction.TextEditorEvents>(); editorEvents.Source.Value = textfield.Editor; editorEvents.EditingFinished.Target = sendRequest; //MAIN CONTENT //Horizontal split List <RectTransform> rectTransformList = (new UIBuilder(mainContent)).SplitHorizontally(0.4f, 0.6f); //RIGHT SIDE Slot rightSlot = rectTransformList[1].Slot; logixNodeSelector = rightSlot.AttachComponent <LogixNodeSelector2>(); Slot contentSlot = rightSlot.FindChild(s => s.Name == "Content"); Slot containerSlot = contentSlot[0]; nodesContainerSlot = containerSlot; contentSlot.ActiveSelf = false; rightSlot.FindChild(s => s.Name == "Panel").Destroy(); rightSlot.FindChild(s => s.Name == "Handle").Destroy(); rightSlot.FindChild(s => s.Name == "Header").Destroy(); rightSlot.FindChild(s => s.Name == "HandleAnchor").Destroy(); containerSlot.Parent = rightSlot; //LEFT SIDE RectTransform hierarchyHeader, nodeHierarchy; Slot leftSlot = rectTransformList[0].Slot; UIBuilder uiBuilder2 = new UIBuilder(leftSlot); //header uiBuilder2.HorizontalHeader(64f, out hierarchyHeader, out nodeHierarchy); UIBuilder uiBuilder3 = new UIBuilder(hierarchyHeader); uiBuilder3.HorizontalLayout(4f, 0.0f, 4f, 0.0f, 4f, new Alignment?()); uiBuilder3.Style.FlexibleWidth = 100f; //hierarchyHeader = uiBuilder3.CurrentRect; uiBuilder3.HorizontalLayout(4f, 0.0f, 0.0f, 4.0f, 0.0f); //hierarchy container UIBuilder uiBuilderContent = new UIBuilder(nodeHierarchy); color color2 = new color(1f, 1f, 1f, 0.2f); uiBuilderContent.Panel(in color2, false); //nodeHierarchy = uiBuilderContent.CurrentRect; uiBuilderContent.ScrollArea(new Alignment?()); uiBuilderContent.VerticalLayout(4.0f, 0.0f, Alignment.TopLeft); uiBuilderContent.FitContent(SizeFit.Disabled, SizeFit.MinSize); componentHierarchy = uiBuilderContent.CurrentRect.Slot; logixHierarchy = componentHierarchy.Duplicate(); //Logix/Comp buttons uiBuilder3.Style.FlexibleWidth = -1f; uiBuilder3.Style.MinWidth = 64f; Button logixButton = uiBuilder3.Button("LogiX"); var component1 = logixButton.Slot.AttachComponent <ButtonValueSet <bool> >(); component1.TargetValue.Target = logixHierarchy.ActiveSelf_Field; component1.SetValue.Value = true; var component2 = logixButton.Slot.AttachComponent <ButtonValueSet <bool> >(); component2.TargetValue.Target = componentHierarchy.ActiveSelf_Field; component2.SetValue.Value = false; Button compButton = uiBuilder3.Button("Comps"); var component3 = compButton.Slot.AttachComponent <ButtonValueSet <bool> >(); component3.TargetValue.Target = logixHierarchy.ActiveSelf_Field; component3.SetValue.Value = false; var component4 = compButton.Slot.AttachComponent <ButtonValueSet <bool> >(); component4.TargetValue.Target = componentHierarchy.ActiveSelf_Field; component4.SetValue.Value = true; components_string2 = "NiceName" + sep + "Name" + sep + "FullName" + sep + "Folder" + sep + "Description" + sep + "Type\n"; logix_string2 = components_string2; buildLayer("", componentHierarchy); buildLayer("/LogiX", logixHierarchy); componentHierarchy.ActiveSelf = false; logixHierarchy.ActiveSelf = true; components_string += "\n "; logix_string += "\n "; //components_string2 += "\n "; //logix_string2 += "\n "; System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\components_string.txt", components_string); System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\logix_string.txt", logix_string); System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\components_string2.txt", components_string2); System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\logix_string2.txt", logix_string2); //this.MakeVariableSelector(); }