Skip to content
This repository was archived by the owner on Jan 24, 2023. It is now read-only.

Commit 6c5c107

Browse files
committed
Fixed ShowScreen on Oculus.
1 parent dda222a commit 6c5c107

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

VRChat/VrcUiExtensions.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,18 @@ public static void ShowUi(this VRCUiManager uiManager, bool showDefaultScreen =
103103
_showUi(uiManager, showDefaultScreen, showBackdrop);
104104
}
105105

106-
public static void ShowScreen(this VRCUiManager uiManager, string screen, bool addToScreenStack = false)
106+
private delegate void ShowScreenDelegate(VRCUiManager uiManager, string screen, bool addToScreenStack);
107+
private static ShowScreenDelegate _showScreen;
108+
109+
public static void ShowScreen(this VRCUiManager uiManager, string screen, bool addToScreenStack = true)
107110
{
108-
uiManager.Method_Public_Void_String_Boolean_0(screen, addToScreenStack);
111+
if (_showScreen == null)
112+
{
113+
_showScreen = (ShowScreenDelegate)Delegate.CreateDelegate(typeof(ShowScreenDelegate),
114+
typeof(VRCUiManager).GetMethods().First(m => m.Name.StartsWith("Method_Public_Void_String_Boolean") && XrefUtils.CheckUsedBy(m, nameof(VRCUiPageTab.ShowPage))));
115+
}
116+
117+
_showScreen(uiManager, screen, addToScreenStack);
109118
}
110119

111120
public static void ShowScreen(this VRCUiManager uiManager, QuickMenu.MainMenuScreenIndex menuIndex,

0 commit comments

Comments
 (0)