Esempio n. 1
0
        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()}");
            }
        }
Esempio n. 2
0
        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);
        }