public override VisualElement CreateInspectorGUI() { // Reset root element and reuse. rootElement.Clear(); // Turn the UXML into a VisualElement hierarchy under root. visualTree.CloneTree(rootElement); // Find elements blockList = rootElement.Q("BlockList") as ListView; blockElement = rootElement.Q("BlockEditor") as BlockEditorElement; newBlock = rootElement.Q("NewBlock") as Button; removeBlock = rootElement.Q("RemoveBlock") as Button; forceSave = rootElement.Q("ForceSave") as Button; changeAllAudio = rootElement.Q("SetAllAudio") as Button; allAudioCategory = rootElement.Q("SetAllAudioField") as TextField; // Update elements blockList.itemHeight = 42; blockList.makeItem = ListView_Makeitem; blockList.bindItem = ListView_BindItem; blockList.onSelectionChanged += ListView_onSelectionChanged; blockList.itemsSource = blockSet.Blocks; blockList.Refresh(); newBlock.clickable.clicked += NewBlock_Clicked; removeBlock.clickable.clicked += RemoveBlock_Clicked; forceSave.clickable.clicked += ForceSave_Clicked; changeAllAudio.clickable.clicked += ChangeAllAudio; return(rootElement); }
/// <summary> /// Call LayoutRebuilder.ForceRebuildLayoutImmediate At All Ancestors BlockEditorElement /// </summary> public void RecursiveRefreshRectTransform() { //https://ssscool.tistory.com/367 //sometimes ContentSizeFilter doesn't work, so this method fix this LayoutRebuilder.ForceRebuildLayoutImmediate(this._RectTransform); BlockEditorElement blockEditorElement = ParentBlockEditorElement; if (blockEditorElement != null) { blockEditorElement.RecursiveRefreshRectTransform(); } }