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); } }
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); } }
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); }
public SubMenu(string name, Transform transform, SettingsSubMenuInfo info) { this.name = name; this.transform = transform; this.info = info; }