private void SetupUI() { if (initialized) { return; } try { var _menuMasterViewController = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First(); prompt = ReflectionUtil.GetPrivateField <SimpleDialogPromptViewController>(_menuMasterViewController, "_simpleDialogPromptViewController"); _mainMenuViewController = Resources.FindObjectsOfTypeAll <MainMenuViewController>().First(); settingsMenu = Resources.FindObjectsOfTypeAll <SettingsNavigationController>().FirstOrDefault(); mainSettingsMenu = Resources.FindObjectsOfTypeAll <MainSettingsMenuViewController>().FirstOrDefault(); _mainSettingsTableView = mainSettingsMenu.GetPrivateField <MainSettingsTableView>("_mainSettingsTableView"); subMenuTableView = _mainSettingsTableView.GetComponentInChildren <TableView>(); subMenuTableViewHelper = subMenuTableView.gameObject.AddComponent <TableViewHelper>(); othersSubmenu = settingsMenu.transform.Find("OtherSettings"); AddPageButtons(); if (tableCell == null) { tableCell = Resources.FindObjectsOfTypeAll <MainSettingsTableCell>().FirstOrDefault(); // Get a refence to the Settings Table cell text in case we want to change font size, etc var text = tableCell.GetPrivateField <TextMeshProUGUI>("_settingsSubMenuText"); } } catch (Exception ex) { Console.WriteLine($"[SettingsUI] Crash when trying to setup UI! Exception: {ex.ToString()}"); } }
public static SubMenu CreateSubMenu(string name) { if (!isMenuScene(SceneManager.GetActiveScene())) { Console.WriteLine("Cannot create settings menu when no in the main scene."); return(null); } if (tableCell == null) { tableCell = Resources.FindObjectsOfTypeAll <MainSettingsTableCell>().FirstOrDefault(); // Get a refence to the Settings Table cell text in case we want to change fint size, etc var text = tableCell.GetPrivateField <TextMeshProUGUI>("_settingsSubMenuText"); } var temp = Resources.FindObjectsOfTypeAll <SettingsNavigationController>().FirstOrDefault(); var others = temp.transform.Find("Others"); var tweakSettingsObject = Instantiate(others.gameObject, others.transform.parent); Transform mainContainer = CleanScreen(tweakSettingsObject.transform); var tweaksSubMenu = new SettingsSubMenuInfo(); tweaksSubMenu.SetPrivateField("_menuName", name); tweaksSubMenu.SetPrivateField("_controller", tweakSettingsObject.GetComponent <VRUIViewController>()); var mainSettingsMenu = Resources.FindObjectsOfTypeAll <MainSettingsMenuViewController>().FirstOrDefault(); var subMenus = mainSettingsMenu.GetPrivateField <SettingsSubMenuInfo[]>("_settingsSubMenuInfos").ToList(); subMenus.Add(tweaksSubMenu); mainSettingsMenu.SetPrivateField("_settingsSubMenuInfos", subMenus.ToArray()); SubMenu menu = new SubMenu(mainContainer); return(menu); }