コード例 #1
0
 // Token: 0x0600634C RID: 25420 RVA: 0x00234A28 File Offset: 0x00232E28
 public void ShowTab(VRCUiPageTab tab)
 {
     for (int i = 0; i < this.currentPageTabs.Count; i++)
     {
         if (this.currentPageTabs[i] == tab)
         {
             this.selected = i;
         }
     }
     VRCUiManager.Instance.ShowScreen(tab.screen);
 }
コード例 #2
0
        private IEnumerator DelayedStart()
        {
            yield return(new WaitForSeconds(10));

            VRCUiPageTabGroup[] info = (VRCUiPageTabGroup[])typeof(VRCUiPageTabManager).GetField("CNFIIMIEIOD", (System.Reflection.BindingFlags) 62).GetValue(UIWrappers.VRCUiPageTabManagerInstance);

            foreach (VRCUiPageTabGroup group in info)
            {
                Log.Info($"group: {group.gameObject.name}, {group.name}");
            }

            VRCUiPageTab tab = UIWrappers.VRCUiPageTabManagerInstance.CreateTab("NekoClient", "nekoclient", VRCUiPageTabManager.NFBPFIKBDKI.Everywhere, info[0]);
        }
コード例 #3
0
    // Token: 0x06006347 RID: 25415 RVA: 0x00234854 File Offset: 0x00232C54
    public VRCUiPageTab CreateTab(string title, string screenPath, VRCUiPageTabManager.TabContext context, VRCUiPageTabGroup tabGroup = null, UnityAction onClick = null)
    {
        VRCUiPageTab vrcuiPageTab = (VRCUiPageTab)AssetManagement.Instantiate(this.pageTabPrefab);

        vrcuiPageTab.Fill(title, screenPath, context);
        this.allPageTabs.Add(vrcuiPageTab);
        this.currentPageTabs.Add(vrcuiPageTab);
        if (tabGroup != null)
        {
            tabGroup.AddTab(vrcuiPageTab);
            vrcuiPageTab.transform.SetParent(tabGroup.transform);
            vrcuiPageTab.transform.Reset();
        }
        if (onClick != null)
        {
            Button component = vrcuiPageTab.GetComponent <Button>();
            component.onClick.AddListener(onClick);
        }
        return(vrcuiPageTab);
    }
コード例 #4
0
ファイル: MenuManager.cs プロジェクト: loukylor/VRC-Mods
        public static void LoadAssetBundle()
        {
            // Stolen from UIExpansionKit (https://github.com/knah/VRCMods/blob/master/UIExpansionKit) #Imnotaskidiswear
            MelonLogger.Msg("Loading UI...");
            ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPromptPage>();
            ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPageDetailed>();
            ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPageBasic>();
            GameObject screens = GameObject.Find("UserInterface/MenuContent/Screens");

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("AskToPortal.asktoportalui.assetbundle"))
            {
                using (var memoryStream = new MemoryStream((int)stream.Length))
                {
                    stream.CopyTo(memoryStream);
                    AssetBundle assetBundle = AssetBundle.LoadFromMemory_Internal(memoryStream.ToArray(), 0);
                    detailedMenu = Object.Instantiate(assetBundle.LoadAsset_Internal("Assets/Prefabs/AskToPortalDetailed.prefab", Il2CppType.Of <GameObject>()).Cast <GameObject>(), screens.transform);
                    basicMenu    = Object.Instantiate(assetBundle.LoadAsset_Internal("Assets/Prefabs/AskToPortalBasic.prefab", Il2CppType.Of <GameObject>()).Cast <GameObject>(), screens.transform);
                }
            }

            detailedMenu.SetActive(false);
            detailedMenuComponent = detailedMenu.AddComponent <AskToPortalPageDetailed>();

            basicMenu.SetActive(false);
            basicMenuComponent = basicMenu.AddComponent <AskToPortalPageBasic>();

            dosisRegular  = GameObject.Find("UserInterface/MenuContent/Screens/Settings/VolumePanel/VolumeUi/Label").GetComponent <Text>().font;
            dosisSemiBold = GameObject.Find("UserInterface/MenuContent/Screens/Settings/VolumePanel/TitleText (1)").GetComponent <Text>().font;
            bifrost       = GameObject.Find("UserInterface/MenuContent/Screens/Settings/Footer/Logout").GetComponent <Image>().sprite;

            AddFontAndImages(detailedMenu.transform);
            AddFontAndImages(basicMenu.transform);

            detailedMenuComponent.Init();
            basicMenuComponent.Init();

            vrcUiTabsParent = GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs");
            tabsParent      = Object.Instantiate(vrcUiTabsParent, vrcUiTabsParent.transform.parent);
            Transform tabsContent = tabsParent.transform.GetChild(0).GetChild(0);

            for (int i = tabsContent.childCount - 1; i >= 0; i--)
            {
                Object.DestroyImmediate(tabsContent.GetChild(i).gameObject);
            }
            tabsParent.name = "AskToPortalTabs";
            tabsContent.GetComponent <HorizontalLayoutGroup>().childAlignment = TextAnchor.MiddleCenter;
            UiManager.OnBigMenuClosed += new System.Action(() => { tabsParent.SetActive(false); vrcUiTabsParent.SetActive(true); });

            GameObject basicTabGameObject = Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/WorldsPageTab"), tabsParent.transform.Find("ViewPort/Content"));

            basicTabGameObject.name = "BasicPageTab";
            basicTabGameObject.transform.Find("Button/Text").GetComponent <Text>().text = "Basic";
            basicMenuTab = basicTabGameObject.GetComponent <VRCUiPageTab>();
            basicMenuTab.field_Public_String_1 = "UserInterface/MenuContent/Screens/AskToPortalBasic(Clone)";

            GameObject detailedTabGameObject = Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/WorldsPageTab"), tabsParent.transform.Find("ViewPort/Content"));

            detailedTabGameObject.name = "DetailedPageTab";
            detailedTabGameObject.transform.Find("Button/Text").GetComponent <Text>().text = "Detailed";
            detailedMenuTab = detailedTabGameObject.GetComponent <VRCUiPageTab>();
            detailedMenuTab.field_Public_String_1 = "UserInterface/MenuContent/Screens/AskToPortalDetailed(Clone)";

            AskToPortalMod.Instance.HarmonyInstance.Patch(typeof(VRCUiPageTab).GetMethod("ShowPage"), new HarmonyMethod(typeof(MenuManager).GetMethod(nameof(OnTabShowPage), BindingFlags.NonPublic | BindingFlags.Static)));
        }
コード例 #5
0
 // Token: 0x0600633D RID: 25405 RVA: 0x00233DB8 File Offset: 0x002321B8
 public void AddTab(VRCUiPageTab tab)
 {
     tab.transform.SetParent(base.transform);
     this.mTabs.Add(tab);
 }