Esempio n. 1
0
        public static SubMenu CreateSubMenu(string name)
        {
            lock (Instance) {
                Instance.SetupUI();

                var subMenuGameObject = Instantiate(Instance.othersSubmenu.gameObject, Instance.othersSubmenu.transform.parent);
                subMenuGameObject.name = name.Replace(" ", "");
                Transform mainContainer = CleanScreen(subMenuGameObject.transform);

                DestroyImmediate(subMenuGameObject.GetComponent <VRUIViewController>());
                var customSettingsViewController = subMenuGameObject.AddComponent <CustomSettingsListViewController>();
                customSettingsViewController.name = name.Replace(" ", "");
                customSettingsViewController.includePageButtons = false;

                var newSubMenuInfo = new SettingsSubMenuInfo();
                newSubMenuInfo.SetPrivateField("_menuName", name);
                newSubMenuInfo.SetPrivateField("_viewController", customSettingsViewController);

                var subMenuInfos = Instance.mainSettingsMenu.GetPrivateField <SettingsSubMenuInfo[]>("_settingsSubMenuInfos").ToList();
                subMenuInfos.Add(newSubMenuInfo);
                Instance.mainSettingsMenu.SetPrivateField("_settingsSubMenuInfos", subMenuInfos.ToArray());
                //Instance._mainSettingsTableView.SetPrivateField("_settingsSubMenuInfos", subMenuInfos.ToArray());

                if (subMenuInfos.Count > 6)
                {
                    Instance.AddPageButtons();
                }

                SubMenu menu = new SubMenu(customSettingsViewController);
                return(menu);
            }
        }
Esempio n. 2
0
        public static SubMenu CreateSubMenu(string name)
        {
            lock (Instance) {
                Instance.SetupUI();

                var       subMenuGameObject = Instantiate(Instance.othersSubmenu.gameObject, Instance.othersSubmenu.transform.parent);
                Transform mainContainer     = CleanScreen(subMenuGameObject.transform);

                var newSubMenuInfo = new SettingsSubMenuInfo();
                newSubMenuInfo.SetPrivateField("_menuName", name);
                newSubMenuInfo.SetPrivateField("_viewController", subMenuGameObject.GetComponent <VRUIViewController>());

                var subMenuInfos = Instance.mainSettingsMenu.GetPrivateField <SettingsSubMenuInfo[]>("_settingsSubMenuInfos").ToList();
                subMenuInfos.Add(newSubMenuInfo);
                Instance.mainSettingsMenu.SetPrivateField("_settingsSubMenuInfos", subMenuInfos.ToArray());

                SubMenu menu = new SubMenu(mainContainer);
                return(menu);
            }
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
 public SubMenu(string name, Transform transform, SettingsSubMenuInfo info)
 {
     this.name      = name;
     this.transform = transform;
     this.info      = info;
 }