protected virtual void ToggleOnSDK() { if (loadedSDKSetup != null && loadedSDKSetup == VRTK_SDKManager.GetLoadedSDKSetup()) { ToggleObject(); } }
protected override void ControllerReady(VRTK_ControllerReference controllerReference) { if (VRTK_SDKManager.GetLoadedSDKSetup() != null && gameObject.activeInHierarchy) { UpdateTransform(controllerReference); } }
protected virtual void OnEnable() { desktopCamera = desktopCamera == null?GetComponentInChildren <Camera>() : desktopCamera; followScript = followScript == null?GetComponentInChildren <VRTK_ObjectFollow>() : followScript; if (desktopCamera == null) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.REQUIRED_COMPONENT_MISSING_NOT_INJECTED, "VRTK_DesktopCamera", "Camera", "desktopCamera", "the same", " or any child of it")); return; } if (followScript == null) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.REQUIRED_COMPONENT_MISSING_NOT_INJECTED, "VRTK_DesktopCamera", "VRTK_ObjectFollow", "followScript", "the same", " or any child of it")); return; } headsetCameraTransformFollow = gameObject.AddComponent <VRTK_TransformFollow>(); headsetCameraTransformFollow.moment = VRTK_TransformFollow.FollowMoment.OnLateUpdate; if (VRTK_SDKManager.SubscribeLoadedSetupChanged(LoadedSetupChanged) && VRTK_SDKManager.GetLoadedSDKSetup() != null) { ConfigureForCurrentSDKSetup(); } }
protected override void ControllerReady(VRTK_ControllerReference passedControllerReference) { if (VRTK_SDKManager.GetLoadedSDKSetup() != null && gameObject.activeInHierarchy && VRTK_ControllerReference.IsValid(passedControllerReference)) { Cleanup(true); controllerReference = passedControllerReference; controllerEvents = (controllerEvents == null ? controllerReference.scriptAlias.GetComponentInChildren <VRTK_ControllerEvents>() : controllerEvents); ManageActivationListeners(true); SetupRigidbody(); SetupColliders(); SetupFollower(); ToggleColliders(activationButton == VRTK_ControllerEvents.ButtonAlias.Undefined); } }
protected virtual VRTK_SDKButtonInputOverrideType GetSelectedModifier(List <VRTK_SDKButtonInputOverrideType> overrideTypes, VRTK_ControllerReference controllerReference) { VRTK_SDKButtonInputOverrideType selectedModifier = null; //attempt to find by the overall SDK set up to start with if (VRTK_SDKManager.GetLoadedSDKSetup() != null) { selectedModifier = overrideTypes.FirstOrDefault(item => item.loadedSDKSetup == VRTK_SDKManager.GetLoadedSDKSetup()); } //If no sdk set up is found or it is null then try and find by the SDK controller if (selectedModifier == null) { SDK_BaseController.ControllerType currentControllerType = VRTK_DeviceFinder.GetCurrentControllerType(controllerReference); selectedModifier = overrideTypes.FirstOrDefault(item => item.controllerType == currentControllerType); } return(selectedModifier); }
protected virtual void AddSelectionButtons() { if (VRTK_SDKManager.GetLoadedSDKSetup() != null) { GameObject chooseNoneButton = Instantiate(chooseButton.gameObject, chooseButton.transform.parent); chooseNoneButton.GetComponentInChildren <Text>().text = "None"; chooseNoneButton.name = "ChooseNoneButton"; chooseNoneButton.SetActive(true); chooseNoneButton.GetComponent <Button>().onClick.AddListener( () => VRTK_SDKManager.AttemptUnloadSDKSetup(true) ); chooseButtonGameObjects.Add(chooseNoneButton); } VRTK_SDKSetup[] setups = VRTK_SDKManager.GetAllSDKSetups(); for (int index = 0; index < setups.Length; index++) { VRTK_SDKSetup setup = setups[index]; if (setup == null || setup == VRTK_SDKManager.GetLoadedSDKSetup()) { continue; } GameObject chooseButtonCopy = Instantiate(chooseButton.gameObject, chooseButton.transform.parent); chooseButtonCopy.GetComponentInChildren <Text>().text = setup.name; chooseButtonCopy.name = string.Format("Choose{0}Button", setup.name); chooseButtonCopy.SetActive(true); int indexCopy = index; Button button = chooseButtonCopy.GetComponent <Button>(); button.onClick.AddListener( () => VRTK_SDKManager.AttemptTryLoadSDKSetup(indexCopy, true, setups) ); ColorBlock buttonColors = button.colors; buttonColors.colorMultiplier = setup.isValid ? 1.0f : 0.8f; button.colors = buttonColors; chooseButtonGameObjects.Add(chooseButtonCopy); } }
protected virtual VRTK_SDKTransformModifiers GetSelectedModifier(VRTK_ControllerReference controllerReference) { //attempt to find by the overall SDK set up to start with VRTK_SDKTransformModifiers selectedModifier = sdkOverrides.FirstOrDefault(item => item.loadedSDKSetup == VRTK_SDKManager.GetLoadedSDKSetup()); //If no sdk set up is found or it is null then try and find by the SDK controller if (selectedModifier == null) { SDK_BaseController.ControllerType currentControllerType = VRTK_DeviceFinder.GetCurrentControllerType(controllerReference); selectedModifier = sdkOverrides.FirstOrDefault(item => item.controllerType == currentControllerType); } return(selectedModifier); }
protected virtual void UpdateCurrentText() { VRTK_SDKSetup loadedSetup = VRTK_SDKManager.GetLoadedSDKSetup(); currentText.text = (loadedSetup == null ? "None" : loadedSetup.name); }
protected virtual void ConfigureForCurrentSDKSetup() { if (headsetCameraCopy != null) { Destroy(headsetCameraCopy.gameObject); } headsetCameraTransformFollow.enabled = false; followScript.enabled = false; if (VRTK_SDKManager.GetLoadedSDKSetup() == null) { return; } Camera headsetCamera = VRTK_DeviceFinder.HeadsetCamera().GetComponent <Camera>(); desktopCamera.depth = headsetCamera.depth + 1; desktopCamera.stereoTargetEye = StereoTargetEyeMask.None; followScript.gameObjectToFollow = headsetCamera.gameObject; followScript.gameObjectToChange = desktopCamera.gameObject; followScript.Follow(); followScript.enabled = true; if (headsetImage == null) { return; } if (headsetRenderTexture == null) { headsetRenderTexture = new RenderTexture( (int)headsetImage.rectTransform.rect.width, (int)headsetImage.rectTransform.rect.height, 24, RenderTextureFormat.ARGB32) { name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Headset RenderTexture") }; } headsetCameraCopy = Instantiate(headsetCamera, transform); headsetCameraCopy.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Headset Camera Copy"); headsetCameraCopy.targetTexture = headsetRenderTexture; foreach (Transform child in headsetCameraCopy.transform) { Destroy(child.gameObject); } IEnumerable <Component> componentsToDestroy = headsetCameraCopy .GetComponents <Component>() .Where(component => component != headsetCameraCopy && !(component is Transform)); foreach (Component component in componentsToDestroy) { Destroy(component); } headsetCameraTransformFollow.gameObjectToFollow = headsetCamera.gameObject; headsetCameraTransformFollow.gameObjectToChange = headsetCameraCopy.gameObject; headsetCameraTransformFollow.Follow(); headsetCameraTransformFollow.enabled = true; headsetImage.texture = headsetRenderTexture; headsetImage.SetNativeSize(); }