using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; public class TabsController : MonoBehaviour { VisualElement root; private void OnEnable() { UIDocument menu = GetComponent(); root = menu.rootVisualElement; GetAllTabButtons().ForEach(RegisterButtonCallbacks); } private void RegisterButtonCallbacks(Button b) { b.RegisterCallback(SetTabVisibleViaButton); } private void SetTabVisibleViaButton(ClickEvent evt) { Button b = evt.currentTarget as Button; VisualElement tabContent = GetAllTabContents().Where((VisualElement tabContent) => tabContent.name.Contains(b.name[..^3])).First(); SetTabVisible(tabContent); } private void SetTabVisible(VisualElement tabToActivate) { UQueryBuilder tabs = GetAllTabContents(); tabs.Where((tab) => tab != tabToActivate).ForEach(t => t.style.display = DisplayStyle.None); tabToActivate.style.display = DisplayStyle.Flex; } private UQueryBuilder GetAllTabContents() { return root.Query(className: "tabContent"); } private UQueryBuilder