private void HandleButtonClick(SDKSetup setup) { UnityAction <Scene, LoadSceneMode> onSceneLoaded = null; onSceneLoaded = (scene, loadMode) => { if (scene.name != setup.SceneToLoad) { return; } SceneManager.sceneLoaded -= onSceneLoaded; SDKManager.PopulateObjectReferences(true); SDKManager.gameObject.SetActive(true); Destroy(gameObject); SDKWasChosen.Invoke(); }; SceneManager.sceneLoaded += onSceneLoaded; SDKManager.autoPopulateObjectReferences = false; Func <VRTK_SDKInfo, bool> predicate = info => info.description.prettyName == setup.PrettyName; SDKManager.systemSDKInfo = VRTK_SDKManager.InstalledSystemSDKInfos.First(predicate); SDKManager.boundariesSDKInfo = VRTK_SDKManager.InstalledBoundariesSDKInfos.First(predicate); SDKManager.headsetSDKInfo = VRTK_SDKManager.InstalledHeadsetSDKInfos.First(predicate); SDKManager.controllerSDKInfo = VRTK_SDKManager.InstalledControllerSDKInfos.First(predicate); VRSettings.LoadDeviceByName(setup.VRDeviceNameToLoad); StartCoroutine(LoadSceneAfterFrameDelay(setup)); }
private static IEnumerator LoadSceneAfterFrameDelay(SDKSetup setup) { yield return(null); SceneManager.LoadScene( setup.SceneToLoad, LoadSceneMode.Additive ); }
private IEnumerator LoadSceneAfterFrameDelay(SDKSetup setup) { yield return(null); if (!string.IsNullOrEmpty(setup.VRDeviceNameToLoad)) { VRSettings.enabled = true; GetComponent <Canvas>().enabled = false; } SceneManager.LoadScene( setup.SceneToLoad, LoadSceneMode.Additive ); }